c语言输出带空格的字符串代码正确例题

74 阅读1分钟

你问题说的不清楚,看你这个贴的代码,你是想给字符串每个中文字中间添加空格再打印。你的问题是s数组初始只有7字符大小(一个中文占2字符,最后还有一个结束符号0)。

但你在循环那里上限1000,越界了。

按照你的写法改,循环上限要参照s长度,传值给n,每次要传2个字符再插空格。

#include <stdio.h>

#include <string.h>

int main()

{

long i,j=0,len;

char s[]={"红黄绿青蓝紫"};

len=strlen(s);

char n[1000000]={"\0"};

for(i=0;i<len;i++)

{

     n[j++]= s[i++];

     n[j++]= s[i];

     n[j++]=' ';

}

 n[j++]='\0';

printf("输出结果:\n%s", n);

}