从键盘输入两个字符串,将第二个字符串连接在第一个字符串的末尾,然后输出连接后的字符串。要求不能使用strcat函数。
时间: 2023-06-01 09:01:45 浏览: 138
从键盘输入字符串并输出该字符串
### 回答1:
可以使用字符串的拼接方式来实现,具体步骤如下:
1. 定义两个字符串变量,分别存储输入的两个字符串。
2. 计算第一个字符串的长度,使用for循环将第二个字符串中的每个字符依次添加到第一个字符串的末尾。
3. 输出连接后的字符串。
示例代码如下:
```
#include <stdio.h>
int main()
{
char str1[100], str2[100];
int len1, i, j;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
// 计算第一个字符串的长度
for (len1 = ; str1[len1] != '\'; len1++);
// 将第二个字符串中的每个字符依次添加到第一个字符串的末尾
for (i = len1, j = ; str2[j] != '\'; i++, j++)
{
str1[i] = str2[j];
}
str1[i] = '\'; // 添加字符串结束符
printf("连接后的字符串为:%s\n", str1);
return ;
}
```
### 回答2:
题目要求使用键盘输入两个字符串,将第二个字符串连接在第一个字符串的末尾,输出连接后的字符串,不能使用strcat函数。
我们可以使用循环来实现字符串连接。首先需要分别定义两个字符串数组,用来存放输入的两个字符串,接着利用循环将第一个字符串的每个字符赋值到一个新的字符串数组中,然后再利用循环将第二个字符串的每个字符赋值到新的字符串数组中第一个字符串的末尾。
代码如下:
```python
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100], new_str[200];
int i, j = 0;
printf("请输入第一个字符串:");
gets(str1); // 输入第一个字符串
printf("请输入第二个字符串:");
gets(str2); // 输入第二个字符串
// 将字符串1复制到新字符串数组中
for (i = 0; str1[i]!='\0'; i++) {
new_str[i] = str1[i];
}
// 将字符串2复制到新字符串数组中,从字符串1的末尾开始
for (j = 0; str2[j]!='\0'; j++) {
new_str[i] = str2[j];
i++;
}
new_str[i] = '\0'; // 在最后加上'\0'表示字符串结束
// 输出连接后的新字符串
printf("连接后的新字符串为:%s", new_str);
return 0;
}
```
上述代码中,我们使用了两个for循环,第一个循环将字符串1复制到新的字符串数组中,第二个循环从字符串1的末尾开始,将字符串2复制到新的字符串数组中。其中,变量i记录新字符串数组中的下标,变量j记录字符串2的下标。
最后,我们需要在新字符串数组的最后加上'\0'表示字符串结束,并将新字符串数组输出即可。
这种方法虽然比较麻烦,但是在没有strcat函数的情况下,也可以实现字符串的连接。
### 回答3:
实现字符串拼接的方法有很多种,这里提供一种比较简单的实现方法。
首先,从键盘输入两个字符串,可以使用scanf函数实现,如下所示:
```
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
```
接着,需要找到第一个字符串的末尾,可以使用while循环和指针实现,如下所示:
```
int i = 0;
while (str1[i] != '\0') {
i++;
}
```
然后,将第二个字符串逐个字符复制到第一个字符串的末尾即可,如下所示:
```
int j = 0;
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
```
最后,记得在连接后的字符串末尾加上'\0',表示字符串的结束符,如下所示:
```
str1[i] = '\0';
```
完整代码如下:
```
#include <stdio.h>
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
int i = 0;
while (str1[i] != '\0') {
i++;
}
int j = 0;
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
str1[i] = '\0';
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```
以上就是一种实现字符串拼接的方法,这里只是提供了一种思路,实际上还有很多其他的实现方法,如使用指针、使用数组下标等。
阅读全文