C语言字符数组拼接:模拟strcat函数实现

本文将介绍如何在C语言中,不使用strcat函数,通过循环将两个字符数组拼接成一个新的字符数组。

代码示例:

#include<stdio.h>
int main() {
	char str1[10] = { 'yellow' };
	char str2[4] = { 'moon' };
	int i = 0, j = 0;
	while (str1[i] != '\0')
		i++;
	while (str2[j] != '\0') 
	{
		str1[i] = str2[j];
		i++;
		j++;
	}
	str1[i] = '\0';
	for (i = 0; i < 10; i++)
		printf("%c", str1[i]);
	return 0;
}

代码解释:

  1. 初始化字符数组: 代码首先定义了两个字符数组 str1str2,分别存储字符串 'yellow' 和 'moon'。

  2. 找到第一个字符串的末尾: while (str1[i] != '\0') i++; 循环遍历 str1 数组,直到遇到字符串结束符 '\0',并记录下结束符的位置 i

  3. 拼接字符串: while (str2[j] != '\0') { str1[i] = str2[j]; i++; j++; } 循环遍历 str2 数组,将 str2 中的字符逐个复制到 str1 的末尾,并将 ij 指针分别指向下一个位置。

  4. 添加字符串结束符: str1[i] = '\0'; 在拼接完成后,需要在 str1 的末尾添加字符串结束符 '\0',以标识字符串的结束。

  5. 打印结果: for (i = 0; i < 10; i++) printf("%c", str1[i]); 循环遍历 str1 数组,打印所有字符。

代码中 str1[i] != '\0' 的作用:

代码中 str1[i] != '\0' 是一个错误,应该是 str1[i] = '\0'

在 C 语言中,字符串的结束是以字符 '\0' 来标识的。 str1[i] = '\0' 的作用是在拼接两个字符串后,将 str1 的末尾设置为 '\0',以表示字符串的结束。如果没有添加字符串结束符,printf 函数可能会继续打印 str1 数组中后面的字符,直到遇到一个随机的 '\0' 结束。

总结:

通过循环和字符串结束符 '\0',我们可以实现不使用 strcat 函数,将两个字符数组拼接成一个新的字符数组。在拼接完成后,记得添加字符串结束符,以确保程序正常输出。


原文地址: https://www.cveoy.top/t/topic/o8fz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录