读入两个字符串s1和s2,将s2中的全部字符复制到字符数组s1中去。要求不使用strcpy函数,并保证字符串末尾的’\0’标识符同时被复制。 要求: 1.循环变量必须使用i 2.必须使用关键字break
时间: 2025-01-05 17:39:46 浏览: 4
以下是一个满足您要求的C语言程序,它读取两个字符串s1和s2,并将s2中的所有字符(包括末尾的'\0')复制到s1中:
```c
#include <stdio.h>
int main() {
char s1[100], s2[100];
// 读取两个字符串
printf("请输入第一个字符串s1: ");
scanf("%s", s1);
printf("请输入第二个字符串s2: ");
scanf("%s", s2);
int i = 0;
// 复制字符串
while (1) {
s1[i] = s2[i];
if (s2[i] == '\0') {
break;
}
i++;
}
printf("复制后的s1: %s\n", s1);
return 0;
}
```
这个程序的工作原理如下:
1. 我们声明了两个字符数组s1和s2,用于存储输入的字符串。
2. 使用scanf函数读取用户输入的两个字符串。
3. 我们使用一个while循环来进行复制操作,循环变量i初始化为0。
4. 在循环中,我们将s2[i]的值赋给s1[i]。
5. 然后检查s2[i]是否为'\0'(字符串结束符)。如果是,就使用break语句跳出循环。
6. 如果不是'\0',我们将i加1,继续下一次循环。
7. 循环结束后,s1中就包含了s2的所有字符,包括末尾的'\0'。
8. 最后,我们打印出复制后的s1字符串。
这个程序满足了您的所有要求:
- 使用了循环变量i
- 使用了break语句来终止循环
- 没有使用strcpy函数
- 确保了字符串末尾的'\0'也被复制
阅读全文