山东高速vs山西回放:<New>写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格

来源:百度文库 编辑:高校问答 时间:2024/04/29 02:56:11
例如输入的是1990那么输出的应该是1_9_9_0
#include"stdio.h"
#include"string.h"
insert_32(char string[])
{
int i=0;
/* for(i=strlen(string);i>0;i--){ */
for(i=1;i<=strlen(string);i++) /*这句为什么也有问题?555*/
string[2*i]=string[i];
string[2*i-1]=' ';
}

string[strlen(string)-1]='\0';

}

int main()
{
char str[100];

gets(str);
insert_32(str);
printf("%s",str);

}

........
int i=0;
for(i=strlen(string);i>0;i--){ /*这行正确,从高位开始换,不会影响低位的数据.*/
/*for(i=1;i<=strlen(string);i++){ 这里的不行,因为这样会盖掉高位还没有被转移的数.比如string[2]=string[1],string[2]原来里面的数9(假设你输入的是1990)就会被你覆盖掉.所以这一行删掉*/
string[2*i]=string[i];
string[2*i-1]=' ';
.......