[英]String Concatenation not working in C (TDM-GCC-64)
这是我的代码
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char fn[20], ln[20], fulln[20];
int i, j, k;
printf("Enter your first name: ");
scanf("%s",fn);
printf("Enter your last name: ");
scanf("%s",ln);
for(i=0,k=0;fn[i]!='\0'; i++, k++)
{
fulln[k] = fn[i];
}
k++;
for(j=0;ln[j]!='\0';j++,k++)
{
fulln[k] = ln[j];
}
fulln[k] = '\0';
printf("Your full name is %s",fulln);
return 0;
}
无法理解它有什么问题。 它不显示全名。 我正在使用 TDM-GCC-64(最新版本)
您的代码基本上是手动执行strcpy
和strcat
。
for(i=0,k=0;fn[i]!='\0'; i++, k++)
{
fulln[k] = fn[i];
}
k++;
for(j=0;ln[j]!='\0';j++,k++)
{
fulln[k] = ln[j];
}
fulln[k] = '\0';
您的代码存在问题:
你应该初始化所有的字符缓冲区,像这样: char fn[20] = "", ln[20] = "", fulln[41] = "";
此外,您应该确保fulln
足够大以包含fn
和ln
。 例如,将其设置为 41,以容纳其间的空间。
此外,这一行k++;
应该改变fulln[k++] = ' ';
- 这增加了两者之间的空间。
顺便说一句,因为您已经包含string.h
所以没有理由不使用标准库strcpy
和strcat
。 这意味着这两行可以替换您的整个代码段:
strcpy(fulln, fn);
strcat(fulln, " ");
strcat(fulln, ln);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.