期末-简单的字符串替换

烟大计科 问题 E: 期末-简单的字符串替换

题目描述
用C语言写一个小程序,输入两个字符串str1,str2,将str1中的每个空格符都替换为str2,并输出

输入
输入两个字符串,之间用回车隔开。

输出
替换之后的字符串。

样例输入
copy
I play to win
Happy halloween!
Made by hxl.
样例输出
IHappy halloween!playHappy halloween!toHappy halloween!win

提示
输入的字符串的长度均小于100。

#include<stdio.h>
int main()
{
    char str1[100],str2[100];
    int i;
    gets(str1);
    gets(str2); 
    for(i=0;str1[i];i++)
        if(str1[i]==' ')//如果是空格就输出str2
            printf("%s",str2);
        else//不是空格就输出str1[i]所对应的这个字符
            {printf("%c",str1[i]);}
    return 0;
}

样例输了个出:

本题的收获:
1.思路
思考的时候光把思路局限于:把str2插入到str1里面,然后在整个地输出str1,这样占用空间啥的也要相应地扩大,看别的代码甚至有二百多行很可怕

所以在有了一个麻烦的思路以后先别急着查,再深地想想说不定能更灵活

本题思路来源于智慧的[\m0_51725392](https://blog.csdn.net/m0_51725392)同学

2.gets()函数
用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加’\0’字符。其调用格式为:gets(s); 其中s为字符串变量。
这是提示的内容,意思就是用了gets函数后,输入完一个字符串后敲一个回车就可以,不用printf的“\n”之类的,函数会把回车吃掉再加一个‘\0’表示此字符串的结束。

关于‘\0’又查了一下:
“’\0’是判定字符数组结束的标识,表示这串字符到结尾了;
注意:在字符数组中’\0’是占一个位置的!
例如 定义char c[6]=“hello”,而在内存中字符数组 c 则是"hello\0";
即’\0’在数组中占有空间却不被我们看到;
所以如果一个长度为10的字符串要放在字符数组里的话就应该把字符数组的长度定义为11”

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值