| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1636 人关注过本帖
标题:新人求助,C语言基础编程问题,求代码
只看楼主 加入收藏
l531619792
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-22
结帖率:0
收藏
 问题点数:0 回复次数:6 
新人求助,C语言基础编程问题,求代码
实例 15  字符串替换
【实例说明】
  编程实现将字符串"today is Monday"替换变成"today is Friday"。
【技术要点】
本实例的算法思想如下:首先输人字符串1,再输入要替换的内容和替换的位置(字符串1中的位置),这时只需从替换位置开始将要替换的内容逐个拷到字符串1中,直到遇到字符串1的结束符或遇到替换字符串的结束符便结束替换。
搜索更多相关主题的帖子: 基础 编程 字符串 替换 结束 
2019-03-08 09:58
Trouble。
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-2-13
收藏
得分:0 
自己不想,就希望别人给你代码?
2019-03-08 17:55
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
收藏
得分:0 
技术要点讲的清清楚楚,不理解就好好看书
按照技术要点的想法那就是用 赋值运算符 = 来解决问题
就算不用那么low的办法,string.h 这个标准库的常用函数基本上是本C教材都会教的
2019-03-08 19:08
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
代码呢?想好思路就写,这样才能有进步。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2019-03-08 20:09
李掌柜
Rank: 6Rank: 6
等 级:侠之大者
帖 子:94
专家分:406
注 册:2015-6-18
收藏
得分:0 
string  Str = "today is Monday";
Str = "today is Friday";

C++ 这样写没毛病吧
C 好像得一个函数strcpy
进一步可以去看看文档
http://tool.
百度一下string.h这个头文件,楼主的问题很易容可以找到解决方案的

照片是可以做成小游戏的,快来私聊我吧!
2019-03-08 21:12
xhxh
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:31
注 册:2019-2-20
收藏
得分:0 
程序代码:
    #include<stdio.h>
#include<stdlib.h>
#include<string.h>
extern int my_scanf(char *dest,char *str,int *n);
extern int my_replace(char *dest,char *str,int n,int z);
int main() {
    char dest[21] = { 0 };
    char str[20] = { 0 };
    int n;
    int z = sizeof(dest);
    //字符串输入
    int er;
    er = my_scanf(dest,str,&n);
    if (er != 0)
    {
        printf("my_scanf err %d",er);
    }
    //字符串替换
    er = my_replace(dest,str,n,z);
    if (er != 0)
    {
        printf("my_replace err %d",er);
    }
    
    printf("%s",dest);
    system("pause");
    return 0;
}
//字符串替换
int my_replace(char *dest, char *str, int n,int z) {
    if (dest == NULL || str == NULL || n == (int)NULL) {
        return -1;
    }
    char *dest1 = dest;
    for (int i = 0; n < z; n++,i++)
    {
        *(dest1 + n) = *(str + i);
    }
    return 0;
}
//my name is aaaaaaaaa 

//字符串录入
int my_scanf(char *dest, char *str, int *n) {
    if (dest == NULL || str == NULL || n == NULL) {
        return -1;
    }
    printf("输入含20以下字符\n");
    while (1)
    {
        gets(dest);
        if (strlen(dest) != (int)NULL && strlen(dest) <= 20)
        {
            break;
        }
        printf("字符长度过长或空重新输入\n");
    }

    printf("输入起始点\n");
    while (1)
    {
        scanf("%d", n);
        if (*n <= 20 && *n >= 0)
        {
            break;
        }
        printf("超出字符串长度重新输入\n ");
    }

    printf("输入小于总字符串长度20减去起始位置字符串\n");
    //清空scanf获取的回车
    rewind(stdin);
    while (1)
    {
        gets(str);
        if ((unsigned int)(20 - *n) >= (unsigned int)strlen(str) && strlen(str) != (int)NULL)
        {
            break;
        }
        printf("字符串长度不符重新输入");
    }
    return 0;
}


[b]
    我也是正在学c  正好练习下
    种种限制我关键就这一句

    for (int i = 0; n < z; n++,i++)
    {
        *(dest1 + n) = *(str + i);
    }
   
2019-03-14 02:02
瞿小凯
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-5-30
收藏
得分:0 
看到楼上的回答,明显过于复杂了
话不多说,我深夜放一个刚写的代码案例出来给你们瞧瞧
输入:
you are what you do
输出:
we are what we do

替换的字符,you->we


程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char a[1010];
    int i,j,n;
    while(gets(a))
    {
        n=strlen(a);
        for(i=0;i<n;i++)
        {
           if(a[i]=='y'&&a[i+1]=='o'&&a[i+2]=='u')
            {
                printf("we");
                i+=2;
            }
            else
            {
                printf("%c",a[i]);
            }

 
        }
        printf("\n");
    }
    return 0;
}
2022-07-25 00:44
快速回复:新人求助,C语言基础编程问题,求代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020207 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved