试题 算法训练 P0601

您所在的位置:网站首页 P0602-00 试题 算法训练 P0601

试题 算法训练 P0601

2023-03-05 01:52| 来源: 网络整理| 查看: 265

问题描述

编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

输入示例:   123-45-678   -输出示例:   12345678

解答部分

代码部分:

#include #include int main() { char str[20],ch,str2[20]; int i=0,j=0; gets(str); ch=getchar(); while(str[i]!='\0') { if(str[i]!=ch) { str2[j]=str[i]; j++; } i++; } str2[j]='\0'; puts(str2); return 0; } 知识点常识:定义一个字符类型的变量ch:char ch;只包含一个字符,用单引号' ' 例如'-'定义一个字符串类型的变量str:char str[20];包含多个字符,用双引号" " 例如"123-34-567"输入字符:gets(str);输出字符:puts(str);输入字符串:ch=getchar();输出字符串:ch=putchar();

代码解释  

while(str[i]!='\0') { if(str[i]!=ch) { str2[j]=str[i]; j++; } i++; } //在这里将满足条件的srt[i]放到str2[j]中

1.为啥要用str[i]!='\0'作为循环终止的条件:

'\0'是判定字符数组结束的标识,表示这串字符到结尾了; 注意:在字符数组中'\0'是占一个位置的!

例如 定义char a[6]=“hello”,而在内存中字符数组 c 则是"hello\0";

即:'\0'在数组中占有空间却不被我们看到;

所以如果一个长度为10的字符串要放在字符数组里的话就应该把字符数组的长度定义为11;

示例代码:

#include int main() { char a[6]="hello"; int i=0; while(a[i]!='\0') { printf("%c ",a[i]); i++; } printf("\n"); }

测试截图:

str2[j]='\0';

2.为啥要用这个语句: 因为:'\0'是字符串结束的标志,一个字符数组的末尾加上'\0'后就可以看成字符串,进行字符串的操作,这样才可以用输出字符串的函数,将字符串输出。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3