在c语言中怎样实现不用strcat函数连接两个字符串
时间: 2023-12-21 15:05:47 浏览: 31
可以使用循环遍历两个字符串并逐个字符赋值给新的字符串来实现字符串连接,示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "hello";
char str2[50] = "world";
int i, j;
// 计算str1和str2的长度
int len1 = strlen(str1);
int len2 = strlen(str2);
// 新建一个字符串数组,长度为两个字符串长度之和
char str3[len1 + len2 + 1];
// 循环遍历str1和str2并逐个字符赋值给str3
for (i = 0; i < len1; i++) {
str3[i] = str1[i];
}
for (j = 0; j < len2; j++) {
str3[i+j] = str2[j];
}
// 在新字符串末尾添加字符串结束符
str3[i+j] = '\0';
printf("%s\n", str3);
return 0;
}
```
运行结果为:
```
helloworld
```
相关问题
C语言不用指针不用strcat函数实现两个字符串的连接。
在 C 语言中,可以使用数组来操作字符串,从而实现字符串的连接。以下是一种实现方法:
```c
#include <stdio.h>
void string_concat(char dest[], char src[]) {
int i, j;
i = j = 0;
// 指针移动到 dest 的末尾
while (dest[i] != '\0') {
i++;
}
// 将 src 复制到 dest 的末尾
while (src[j] != '\0') {
dest[i] = src[j];
i++;
j++;
}
// 添加字符串结束标志
dest[i] = '\0';
}
int main() {
char str1[100] = "hello";
char str2[50] = "world";
// 连接两个字符串
string_concat(str1, str2);
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```
以上代码中,`string_concat()` 函数接受两个字符串数组 `dest` 和 `src`,然后将 `src` 中的字符复制到 `dest` 的末尾,并在末尾添加字符串结束标志 '\0',从而实现字符串的连接。最后在 `main()` 函数中,调用 `string_concat()` 函数来连接两个字符串,并输出连接后的字符串。
c语言编写程序实现两个字符串相连接,不用strcat函数
,该怎么做?
可以通过以下步骤实现两个字符串相连接:
1. 创建一个新的字符数组,用于存储连接后的字符串。
2. 使用循环将第一个字符串中的字符逐个复制到新的字符数组中。
3. 使用另一个循环将第二个字符串中的字符逐个复制到新的字符数组中,从第一个字符串的末尾开始。
4. 在新的字符数组的末尾添加一个空字符 '\0',以表示字符串的结束。
以下是可以实现上述步骤的C语言代码示例:
```c
#include <stdio.h>
void stringConcat(char str1[], char str2[], char newStr[])
{
int i, j;
// 复制第一个字符串
for(i=0; str1[i]!='\0'; i++)
{
newStr[i] = str1[i];
}
// 复制第二个字符串
for(j=0; str2[j]!='\0'; j++)
{
newStr[i+j] = str2[j];
}
// 添加结束符
newStr[i+j] = '\0';
}
int main()
{
char str1[50] = "Hello";
char str2[25] = "World";
char newStr[75];
// 连接两个字符串
stringConcat(str1, str2, newStr);
printf("连接后的字符串为: %s", newStr);
return 0;
}
```
请注意,上述代码仅适用于两个字符串的连接。如果需要连接多个字符串,则需要进行更复杂的操作。