首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序如何理解

2012-03-22 
从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序怎么理解解释一下下面函数的意思,

从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除程序怎么理解
解释一下下面函数的意思,不太理解,具体点啊,谢谢题目是:
从键盘输入一个字符串和一个指定字符,将字符串中出现的指定字符删除
#include<stdio.h>
void prochar(char *str,char c)
{char *p;
 for(p=str;*p!='\0';p++)
 if(*p!=c)
  *str++=*p;
  *str='\0';
}
void main()
{char str[80],char_c;
 gets(str);
 scanf("%c",&char_c);
 prochar(str,char_c);
 puts(str);
}

[解决办法]
几个库函数可以google

prochar 可以单步运行,看看每一步都在干什么


[解决办法]
从字面意思理解
输入abc,和字符b
那最终结果就是ac
[解决办法]
//prochar
//input: str,待删除字符串。c 欲删除的字符
void prochar(char *str,char c)
{
 char *p;
 //另p指向str作为待删除字符串的移动指针
 //循环我补上了大括号,能清楚一些
 for(p=str;*p!='\0';p++)
 {
//如果p指向的字符与c不符,即不删除
if(*p!=c)
{
//str指向的字符等于p指向的字符,然后指针+1指向下一个字符
*str++=*p;
}
//反之,p向下移动一位
 }
//str末位标识/0表示字符串结尾
*str='\0';
}

示例操作
str = abcdef\0
c = c
函数执行
p依次指向abcdef\0
循环结束后
str = abdeff\0
函数结束后
str = abdef\0\0
[解决办法]

探讨

//prochar
//input: str,待删除字符串。c 欲删除的字符
void prochar(char *str,char c)
{
char *p;
//另p指向str作为待删除字符串的移动指针
//循环我补上了大括号,能清楚一些
for(p=str;*p!='\0';p++)
{
//如果p指向的字符与c不符,即不删除
if(*p!=c)
……

[解决办法]
探讨

//prochar
//input: str,待删除字符串。c 欲删除的字符
void prochar(char *str,char c)
{
char *p;
//另p指向str作为待删除字符串的移动指针
//循环我补上了大括号,能清楚一些
for(p=str;*p!='\0';p++)
{
//如果p指向的字符与c不符,即不删除
if(*p!=c)
……

[解决办法]
小心输入
aaa
a
输出空串的情况
[解决办法]
最新的标准规定void main()是不被允许的

热点排行