c语言将两个字符串连接起来不要用strcat函数
时间: 2023-12-15 18:21:56 浏览: 102
可以使用循环将第二个字符串中的每个字符添加到第一个字符串的末尾,直到第二个字符串的结尾标志'\0'。例如:
```c
#include <stdio.h>
void mystrcat(char *s1, const char *s2) {
while (*s1) { // 找到s1的结尾
s1++;
}
while (*s2) { // 将s2中的字符添加到s1的末尾
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0'; // 添加字符串结尾标志
}
int main() {
char s1[20] = "Hello, ";
char s2[] = "world!";
mystrcat(s1, s2);
printf("%s\n", s1); // 输出Hello, world!
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`来标记字符串的结尾。
使用C语言编写一个程序,将两个字符串连接起来,不要用strcat函数
好的,以下是使用C语言编写的将两个字符串连接起来的程序,不使用strcat函数:
```c
#include <stdio.h>
#include <string.h>
void my_strcat(char *s1, char *s2) {
while (*s1) {
s1++;
}
while (*s2) {
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0';
}
int main() {
char str1[50], str2[50];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
my_strcat(str1, str2);
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```
在这个程序中,我们定义了一个名为`my_strcat`的函数,它接受两个指向字符数组的指针作为参数,将第二个字符串连接到第一个字符串的末尾。具体实现如下:
- 使用一个while循环找到第一个字符串的末尾。
- 然后使用另一个while循环将第二个字符串的每个字符复制到第一个字符串的末尾。
- 最后将第一个字符串的末尾设置为'\0'。
在主函数中,我们首先从用户那里获取两个字符串,然后调用`my_strcat`函数将它们连接起来,最后输出结果。
需要注意的是,这个程序假设两个字符串都是以'\0'结尾的。如果不是,可能会导致程序崩溃或产生意外结果。所以,实际应用中还需要对输入进行有效性判断。
阅读全文