数字后面加星号

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:19:48
有如下代码:#include<iostream.h>
void fun(char *s)
{
int i,j,n;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{
n=0;
while(s[i+1+n]!=0)
n++;
for(j=i+n+1;j>i;j--)
s[j+1]=s[j];
s[j+1]='*';
i=i+1;
}
}
void main()
{
char s[80]="ba3a54cd23a";
cout<<"\nthe oringinal string is: "<<s<<endl;
fun(s);
cout<<"\nThe result is:"<<s<<endl;
}
但我觉得用这样的代码也能实现:
#include<iostream.h>
void fun(char *s)
{
int i,j,n;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{
n=0;
while(s[i+1+n]!=0)
n++;
for(j=i+n+1;j>i;j--)
s[j+1]=s[j];
s[j+1]='*';
//i=i+1;
}
}
void main()

这两个程序运行结果确实一样,虽然其中的差别在于是否包含注释掉的指令。
注释掉的指令i=i+1;完成的功能仅仅是跳过刚才新添加的字符“*”而已,因为这个字符明显不是数字字符,所以省略了一次判断,强制进行后面的字符判断。