比如最后编程题
请编写函数fun,函数的功能是:在字符串中所有数字字符前加一个$字符。
例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。
我的答案:
/*void fun(char *a)
{
int i=0;
while(*(a+i)!=NULL)
{
if(*(a+i)>='0'&&*(a+i)<='9')
printf("$%c",*(a+i));
else printf("%c",*(a+i)); //直接打出字符串,没有改变字符串
i++;
}
}
题上给的答案:
void fun( char *s)
{char a[100];
int i=0;
while(*s)
if(*s>='0'&&*s<='9') {a[i++]='$';a[i++]=*s++;}
else a[i++]=*s++;
a='\0';
strcpy(s,a);
} //它是想把数组a改了,但貌似还有些错误。。。
这样最后的评分结果是什么呢?
望前辈指教~~~
还有能帮忙把这个程序做出来吗?标答貌似有些错误
我用的是VC++6.0 ,用三楼的程序总是内存出错。何解?
明白了,三楼的char *s="A1B23CD45"; 不够容纳新生成的数组。应改为,char char b[100]="sadf345",*s=b;这样就可以了,谢谢大家~