delete_replace_string(char str[],char ch)
{int i,j;
for(i=0;str[i]!='\0';i++)
{if((str[i]==ch)
{if('A'<=ch&&ch<='Z'))
str[i]=str[i]+32;\\ 如果ch的值在A-Z中,且 str[i]与ch相等,则+32
else if('a'<=ch&&ch<='z')
str[i]=str[i]-32;\\ 如果ch的值在a-z中,且 str[i]与ch相等,则-32
else
{for(j=i;str[j]!='\0';j++)
{str[j]=str[j+1];
str[j]='\0';}
}\\如果为其他字符,找到str[i]=ch时,删除
}
}
str[i]='\0';
}
'A'<=ch<='Z'
语法错误,此类表达式应写成如下形式:
ch>='A'&&ch<='Z'
****************************************
或者用ctype.h中的宏:
#include
isupper(ch);//判断ch是不是大写字母
islower(ch);//判断ch是不是小写字母
isdigit(ch);//判断ch是不是数字
错的根根都没有!!!
啊!
#include
main()
char ch[50],x,y,z;/*输入的x是大写,y是小写,z是数字*/
int i;
printf("input char[].\n");
gets(ch);
printf("shu ru da xie.\n");
scanf("%c",&x);
printf("shu ru xiao xie.\n");
scanf("%c",&y);
printf("shu ru shu zi.\n");
scanf("%c",&z);
for(i=0;ch[i]!='\0';i++)
{
n=i;/*n作用是当输入数字时把它删除好把后面的字符前提*/
if(ch[i]==x) ch[i]=x+32;/*当前字符等于这个输入的字符,就改变
if(ch[i]==y) ch[i]=y-32;
if(ch[i]==z) ch[i]=ch[++n];/*把字符前提*/
}
printf("%s\n",ch);
}