新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2017-3-9
- 在线时间
- 5 小时
|
1金钱
请求支援.........................................................
#include <stdio.h>
#include<string.h>
/*
@brief:在字符串中所有数字字符之前加一个'-'字符
*/
void fun(char *str)
{
char a[100],*s=str;
int i=0;
while(*s)
{
if('0'<=*s && *s<='9')
{
a[i++]='-';
a[i++]=*s++;
}
else a[i++]=*s++;
}
a[i]='\0'; //结束符
// strcpy(s,a); //使用这条语句会导致打印结果为 a1b2c3d4f55a-1b-2c-3d-4f-5-5
strcpy(str,a);//这条语句为预期打印结果 a-1b-2c-3d-4f-5-5
}
int main(int argc, char *argv[])
{
char s[80]="a1b2c3d4f55";
fun(s) ;
printf("%s\n",s);
return 0;
}
预期打印结果应该是a-1b-2c-3d-4f-5-5
我没有想明白为什么strcpy(s,a)的结果是a1b2c3d4f55a-1b-2c-3d-4f-5-5 |
最佳答案
查看完整内容[请看2#楼]
你仔细看一下.你的S++,加了多少回了.还以为 S会等于STR吗???你想复制的时候 , S已经在STR的屁股上了. 当然不对了.
|