不知道为什么在输出时出现中文
c语言的输出问题,不知道为什么
运行软件:VS Code
应该是因为下标的使用方式的原因,以及字符数组m和n最后一个字符位置后面没加空字符'\0'.如果程序是要实现把一个字符串分开存入两个字符数组,再连接后打印,数组的下标变量可以使用两个变量分开表示,修改如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
char n[80];
char m[80];
char ch;
int nlen=0; // 数组n的下标变量
int mlen=0; // 数组m的下标变量
int i=0; // 用于计算输入的字符个数
while((ch=getchar())!='\n'){
// static int i = 0;
if(i<3){
n[nlen]=ch; //前3个字符存入字符数组n中
nlen++;
}else{ //第3个字符以后的字符存入字符数组m中
m[mlen]=ch;
mlen++;
}
i++;
}
n[nlen]='\0'; // 给字符数组n添加一个空字符
m[mlen]='\0'; // 给字符数组m添加一个空字符
//printf("nlen=%d,mlen=%d,n=%s,m=%s\n",nlen,mlen,n,m);
char * sum;
sum = strcat(m,n); // 如果要以输入顺序连接,把n和m交换下位置即可
printf("%s\n",sum);
return 0;
}