思路:由键盘输入两个字符串再将这两个字符串放入另外的一个数组里边

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[50], str2[50];
	char string[100] = {0};
	int i, j=0, m;
	printf("请输入两个字符串:\n");
	gets_s(str1);
	gets_s(str2);//输入两个字符串
	for (i = 0; str1[i] != '\0'; i++)
	{
		string[j] = str1[i];//将第一个字符串放入string
		j = j + 1;
	}
	for (m = 0; str2[m] != '\0'; m++)
	{
		string[j] = str2[m];//将第二个字符串放入string
		j++;
	}
	puts(string);//输出连接后的字符串
	return 0;
}

在这个过程中,出现了异常

 

1..问题:for循环无法停止导致数组满溢,判断循环的执行条件有误。

2.原因:对于字符串结束的标志认知错误,是‘\0’不是‘\n’

3.解决:for (i = 0; str1[i] != '\n'; i++)修改为for (i = 0; str1[i] != '\0'; i++)

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐