写一个C语言程序,从键盘输入两个字符串存放在字符数组s1和s2中,数组s1和s2大小均为40。把s1和s2连接在一起构成一个字符串存放在字符数组s3中,最后输出s3。不要使用strcat和strcpy函数。
时间: 2023-06-02 12:08:03 浏览: 227
好的,这是一个编程问题,我可以帮你解答。以下是一个示例程序:
```c
#include <stdio.h>
int main() {
char s1[41], s2[41], s3[81];
int i, j;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
// 将s1复制到s3
for (i = 0; s1[i] != '\0'; i++) {
s3[i] = s1[i];
}
// 将s2复制到s3
for (j = 0; s2[j] != '\0'; j++) {
s3[i + j] = s2[j];
}
// 添加字符串结尾符号
s3[i + j] = '\0';
printf("连接后的字符串s3为:%s\n", s3);
return 0;
}
```
这个程序会先从键盘读取两个字符串,然后将它们连接在一起存储到另一个字符数组s3中,最后输出s3。请注意,程序中没有使用strcat和strcpy函数。
相关问题
用c语言从键盘输入两个字符串,将长字符串存入s1数组中,将短字符串存入s2数组中
在C语言中,你可以通过循环和字符计数的方式来实现这个功能。首先,你需要定义两个足够大的字符数组`s1`和`s2`来存储输入的字符串。下面是一个简单的步骤:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串最大长度
int main() {
char s1[MAX_LEN], s2[MAX_LEN]; // 定义两个字符数组
int len1 = 0, len2 = 0; // 存储每个字符串的长度
printf("请输入第一个字符串:");
fgets(s1, MAX_LEN, stdin); // 使用fgets防止换行符被读取
s1[strlen(s1) - 1] = '\0'; // 去掉可能存在的换行符
printf("请输入第二个字符串:");
fgets(s2, MAX_LEN, stdin);
s2[strlen(s2) - 1] = '\0';
// 检查哪个字符串更长并赋值
if (strlen(s1) > strlen(s2)) {
strcpy(s2, s1); // 将较长的字符串复制到s2
len1 = strlen(s1);
len2 = strlen(s2);
} else {
strcpy(s1, s2); // 将较短的字符串复制到s1
len1 = strlen(s1);
len2 = strlen(s2);
}
// 输出结果
printf("第一个字符串(s1):%s\n", s1);
printf("第二个字符串(s2):%s\n", s2);
将数组 s1 中字符串的子串复制到数组 s2 中,输出数组 s2 中的字符串 子串从数组 s1 的下标 begin 开始,长度为 len用C语言来实现
好的,针对您的问题,可以使用以下 C 语言代码实现复制和输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char* s1[] = {"hello", "world", "python", "AI"};
char* s2[10];
int begin = 1;
int len = 3;
int i;
for (i = begin; i < begin + len; i++) {
s2[i - begin] = strdup(s1[i]);
}
for (i = 0; i < len; i++) {
printf("%s\n", s2[i]);
}
return 0;
}
```
这段代码将 s1 数组中下标从 begin 开始,长度为 len 的子串复制到 s2 数组中,然后遍历输出 s2 数组中的字符串子串。需要注意的是,C 语言中没有字符串类型,而是使用字符数组。因此,我们可以定义字符指针数组来存储字符串,使用 `strcpy` 函数将字符串复制到数组中,并使用 `printf` 函数输出字符串。此外,为了避免内存泄漏,我们还需要在循环结束后使用 `free` 函数释放动态分配的内存。
阅读全文