法一:(作者认为有点取巧,但程序简单)
/*用字符数组作函数参数编程实现如下功能:在字符串中删除与某字符相同的字符。
**提示信息:
"Input a string:"
"Input a character:"
**输入格式要求:"%s"
**输出格式要求:"Results:%s\n"
程序运行示例1如下:
Input a string:hello,world!
Input a character:o
Results:hell,wrld!*/
#include<stdio.h>
#include<string.h>//调用string内函数“strlen()”
int main()
{
int m;
char a[80];
char n;
printf("Input a string:");
gets(a);//读取字符串
printf("Input a character:");
scanf("%c",&n);
printf("Results:");//把题中"Results:%s\n"拆开简化代码
for(m=0;m<strlen(a);m++)//循环顺序输出
{
if(a[m]!=n)//分支判断
printf("%c",a[m]);
else
continue;//跳过该字符
}
printf("\n");
}
/*若为倒序输出则
for(m=strlen(a);m>-1;m--)//循环倒序输出
{
if(a[m]!=n)//分支判断
printf("%c",a[m]);
else
continue;
}
*/
法二:(应该是标准方法叭)
#include<stdio.h>
#include<string.h>
int main(void)
{
int i, j;
char s[100];
char c;
printf("Input a string:");
gets(s);
printf("Input a character:");
scanf("%c", &c);
for (i = strlen(s)-1; i>= 0; i--)
{
if (s[i] == c)
{
for (j = i; j <= strlen(s)-1; j++)
{
s[j] = s[j + 1];
}
}
}
printf("Results:%s\n", s);
}
//用个整型变量=strlen(s)就不会出现warning啦!就像下面一样
/*#include<stdio.h>
#include<string.h>
int main(void)
{
int i, j;
int len;
char s[100];
char c;
printf("Input a string:");
gets(s);
printf("Input a character:");
scanf("%c", &c);
len = strlen(s);
for (i = len; i>=0; i--)
{
if (s[i] == c)
{
for (j = i; j < len; j++)
{
s[j] = s[j + 1];
}
}
}
printf("Results:%s\n", s);
}
*/