试题 算法训练 P0601 |
您所在的位置:网站首页 › P0602-00 › 试题 算法训练 P0601 |
问题描述 编写一个程序,先输入一个字符串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"); }测试截图: 2.为啥要用这个语句: 因为:'\0'是字符串结束的标志,一个字符数组的末尾加上'\0'后就可以看成字符串,进行字符串的操作,这样才可以用输出字符串的函数,将字符串输出。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |