要求示例:给出的程序的功能是删除字符串(字符数组)s中所有的小写字母c。请改正程序中的错误,使它能得到正确的结果。
测试输入: abcdefg
预期输出:
The original string:
abcdefg
The string after deleted:
abdefg
我们可以用循环遍历的方法,假设原数组是s[100],另外定义一个全为0的数组a[100],如果s[i]的值不为c,就把s[i]的值赋给a[j],最后输出a[100]这个数组就行了
以下是代码实现
#include "stdio.h"
#include "string.h"
int main()
{
char s[80];
int i,j;
scanf("%s",s);
printf("The original string: \n");
puts(s);
char a[100]={0};
for(i=j=0;s[i]!='\0';i++)
{
if(s[i]!= 'c')
{
a[j++]=s[i];//注意j++的位置,只有满足条件的时候才会j++
}
}
a[j]='\0';
printf("The string after deleted: \n");
puts(a);
return 0;
}
我们还需要注意的一点是,用puts输出必须在末尾加上'\0',因此我们在最后加一步a[j]=’\0'