用C++ 定义一个字符数组s1,并输入一个字符串1,写一段代码,要求把字符串1中的字母拷贝到字符数组s2中并输出。然后再优化代码
时间: 2023-06-02 07:06:13 浏览: 89
可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char s1[MAX_LEN];
char s2[MAX_LEN];
printf("请输入字符串1:\n");
scanf("%s", s1);
// 复制字符串1到字符串2
strcpy(s2, s1);
printf("拷贝后的字符串2为:%s\n", s2);
return 0;
}
```
优化代码可以使用 strncpy() 函数,该函数可以指定拷贝的长度,防止越界访问。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char s1[MAX_LEN];
char s2[MAX_LEN];
printf("请输入字符串1:\n");
scanf("%s", s1);
// 复制字符串1到字符串2
strncpy(s2, s1, MAX_LEN - 1);
s2[MAX_LEN - 1] = '\0';
printf("拷贝后的字符串2为:%s\n", s2);
return 0;
}
```
相关问题
用c++写定义一个函数strlink,函数的原型为:vord strlink (char *C1,char *C2);该函数的功能用于实现两个字符串的连接操作,并在主函数main ()中定义两个字符数组 s1 和s2,通过键盘给 s1 和s2 分别输入相应的字符串内容,调用strlink()函数,实现 s2 中的字符连接到 s1中(要求:不得使用字符串处理函数中的连接库函数)
strlink 函数的定义如下:
```c
void strlink(char *C1, char *C2) {
while (*C1 != '\') {
C1++;
}
while (*C2 != '\') {
*C1 = *C2;
C1++;
C2++;
}
*C1 = '\';
}
```
在主函数 main() 中,定义两个字符数组 s1 和 s2,并通过键盘输入相应的字符串内容,然后调用 strlink() 函数实现 s2 中的字符连接到 s1 中,代码如下:
```c
#include <stdio.h>
void strlink(char *C1, char *C2);
int main() {
char s1[100], s2[100];
printf("请输入字符串 s1:");
scanf("%s", s1);
printf("请输入字符串 s2:");
scanf("%s", s2);
strlink(s1, s2);
printf("连接后的字符串为:%s\n", s1);
return ;
}
void strlink(char *C1, char *C2) {
while (*C1 != '\') {
C1++;
}
while (*C2 != '\') {
*C1 = *C2;
C1++;
C2++;
}
*C1 = '\';
}
```
用c++写定义一个函数 strcopy,函数的原型为:void strcopy (char *c1,char xc2);该函数的功能用于实现两个字符串的复制操作,并在主函数main ()中定义两个宇符数组s1 和s2,通过键盘给 s1 和 s2分别输入相应的字符串内容,调用strcopy()函数,实现 s2 中的字符复制到 s1 中(要求:不得使用字符串处理函数库中的复制函数)
void strcopy(char *c1, char *c2){
while(*c2 != '\'){
*c1 = *c2;
c1++;
c2++;
}
*c1 = '\';
}
int main(){
char s1[100], s2[100];
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
strcopy(s1, s2);
printf("复制后的字符串s1为:%s\n", s1);
return ;
}
阅读全文