编一程序,将两个字符串连接起来,不要用strcat函数
时间: 2023-12-15 14:59:30 浏览: 159
好的,下面是将两个字符串 s1 和 s2 进行连接的程序,不使用 strcat 函数:
```c
#include <stdio.h>
void my_strcat(char s1[], char s2[]) {
int i = 0, j = 0;
// 将 i 移动至 s1 的结束位置
while (s1[i] != '\0') {
i++;
}
// 将 s2 中的字符逐个复制到 s1 的结尾
while (s2[j] != '\0') {
s1[i] = s2[j];
i++;
j++;
}
// 加上字符串结束符
s1[i] = '\0';
}
int main() {
char s1[100], s2[100];
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
// 调用自定义的字符串连接函数
my_strcat(s1, s2);
printf("连接后的字符串为:%s\n", s1);
return 0;
}
```
以上程序执行后会要求用户输入两个字符串,然后将它们连接起来并输出。
相关问题
利用c语言 编一程序 将两个字符串连起来不要用strcat 函数
在C语言中,如果不使用`strcat()`函数,可以手动遍历两个字符串并逐个字符连接。下面是一个简单的示例,展示了如何通过循环实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 定义一个自定义的字符串连接函数
void string_concat(char* destination, char* source) {
int dest_len = strlen(destination);
int src_len = strlen(source);
// 遍历源字符串并将每个字符追加到目标字符串
for (int i = 0; i < src_len; i++) {
destination[dest_len + i] = source[i];
}
// 结束符'\0'
destination[dest_len + src_len] = '\0';
}
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
char result[strlen(str1) + strlen(str2) + 1]; // 确保有足够的空间
// 连接两个字符串
string_concat(result, str1);
printf("Result: %s\n", result);
return 0;
}
```
当你运行这个程序,它会打印出 "Hello, World!"。注意这里我们手动添加了结束符`\0`来标记字符串的结尾。
编一程序将两个字符串连接起来,不要用strcat函数
当你想在编程中不需要使用预定义的字符串连接函数,比如C语言中的`strcat()`,你可以手动创建一个新的字符串并逐字符地添加。下面是一个简单的C语言示例,使用循环将两个字符串`s1`和`s2`拼接在一起:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 功能:将s2追加到s1末尾
void string_concat(char *s1, char *s2) {
int s1_len = strlen(s1);
int s2_len = strlen(s2);
// 预先分配空间以容纳新字符串,包括s1末尾的'\0'
char result[s1_len + s2_len + 1];
// 将s1的内容复制到结果数组
strncpy(result, s1, s1_len);
// 结果数组最后一个位置用于结束符,所以这里要加上'\0'
result[s1_len] = '\0';
// 从s2的第二个字符开始拷贝,因为结果数组已经包含了s1
for (int i = 1; i < s2_len + 1; i++) {
result[s1_len + i] = s2[i - 1]; // 注意索引是从1开始的
}
result[s1_len + s2_len] = '\0'; // 确保最后的结束符
printf("Concatenated string: %s\n", result);
}
int main() {
char str1[] = "Hello, ";
char str2[] = "world!";
string_concat(str1, str2);
return 0;
}
```
在这个例子中,我们首先计算了两个字符串的长度,然后动态地创建了一个新的字符串`result`。接着,我们将`s1`的前缀复制到`result`,再逐个添加`s2`的字符。注意,我们需要处理结束符`\0`。
阅读全文
相关推荐















