#include
#include
voidfun(char*s)
{
inti,j,k;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
{
for(j=strlen(s);j>i;j--);
s[j+1]=s[j];
s[i+1]='*';
}
}
}
voidmain()
{charstr[80];
gets(str);fun(str);
puts(str);
}
扩展资料
函数fun(char*s)的使用
#include
#include
voidfun(char*s)
{
while(*s)
{
if(*s=='z')*s++='a';
if(*s=='Z')*s++='A';
if(*s<'z'&&*s>='a'||*s<'Z'&&*s>='A')
*s=*s+1;
s++;
}
}
main()
{
charstr[30];
printf("请输入字符串:");
gets(str);
fun(str);
printf("输出的结果为:");
puts(str);
}
你每次移动字符串时没有移字符串结尾符0,导致最终字符串不是以0结束出错
将你程序中的 for(j=strlen(s)-1;j>i;j--)改成 for(j=strlen(s);j>i;j--)即可
定义的时候赋初值就好了
char str[80] = {0};