键盘输入两个字符串str1和str2连接起来。要求不用库函数strcat把str2连接到str1末尾。
时间: 2023-08-03 11:01:05 浏览: 194
c用c语言编写一个函数,连接两个字符串
4星 · 用户满意度95%
### 回答1:
可以使用循环遍历str2的每个字符,逐个添加到str1的末尾,直到str2的所有字符都添加完成。具体实现可以参考以下代码:
```python
str1 = input("请输入第一个字符串:")
str2 = input("请输入第二个字符串:")
# 计算str1和str2的长度
len1 = len(str1)
len2 = len(str2)
# 将str2的每个字符逐个添加到str1的末尾
for i in range(len2):
str1 += str2[i]
print("连接后的字符串为:", str1)
```
需要注意的是,这种方法每次添加字符都会创建一个新的字符串对象,因此在处理大量数据时可能会导致性能问题。如果需要高效地连接字符串,可以使用列表或数组来存储每个字符串,最后再使用join方法将它们连接起来。
### 回答2:
可以使用循环来遍历str2中的每个字符,并逐一将其拼接到str1的末尾。具体步骤如下:
1. 首先创建一个变量i,并将其初始化为0,用于遍历str2的字符。
2. 利用循环,从str1字符串的第一个字符开始,直到遇到字符串结束符'\0',将str1的索引递增,指向下一个字符。
3. 再次利用循环,从str1索引所指向的位置开始,将str2的第一个字符赋值给str1的当前位置,将i递增1。
4. 继续循环上述步骤,直到str2的结束符'\0'。
5. 最后,在str1最后一个字符的后面手动加上结束符'\0',表示字符串的结束。
6. 至此,str2已经成功连接到了str1的末尾。
示例代码如下所示:
```c
#include <stdio.h>
void strConcatenate(char str1[], char str2[]) {
int i, j;
// 遍历str1字符串,将索引指向str1的末尾
for (i = 0; str1[i] != '\0'; i++);
// 逐个将str2的字符添加到str1的末尾
for (j = 0; str2[j] != '\0'; j++) {
str1[i + j] = str2[j];
}
// 手动加上字符串结束符
str1[i + j] = '\0';
}
int main() {
char str1[100] = "Hello ";
char str2[] = "World";
// 连接字符串
strConcatenate(str1, str2);
// 输出连接后的字符串
printf("%s\n", str1);
return 0;
}
```
以上是一种简单的方法将两个字符串连接起来,可以避免使用库函数strcat。
### 回答3:
可以通过遍历str1找到末尾的空字符,然后将str2中的每个字符逐个复制到str1的末尾,最后在复制完毕后在str1的末尾添加空字符,即可将str2连接到str1末尾。
下面是具体的代码实现:
```python
def connect_str(str1, str2):
length1 = len(str1)
length2 = len(str2)
# 找到str1的末尾空字符的位置
i = 0
while str1[i] != '\0':
i += 1
# 将str2中的字符逐个复制到str1的末尾
j = 0
while j < length2:
str1[i] = str2[j]
i += 1
j += 1
# 在复制完毕后添加末尾的空字符
str1[i] = '\0'
return str1
```
上述代码通过两个指针i和j分别遍历str1和str2,将str2中的字符逐个复制到str1的末尾,并在复制完毕后添加末尾的空字符。最后返回连接好的字符串str1。
需要注意,上述实现是基于字符串以字符数组形式存在的假设,如果字符串以其他形式存在,请适当调整代码。
阅读全文