编程,输入一个字符串存入字符组S1中,然后将S1中的字符串复制到字符组S2中,

并输出S1和S2的字符串。
要求:分别用字符串处理函数和不用字符串处理函数编程
最新回答
金泫雅

2024-10-18 04:33:27

//仅供参考
#include <
stdio.h
>
#include <
string.h
>

int main()
{
    char s1[256], s2[256];
    int i;
    scanf ("%s", s1);
    /*---
字符串
处理函数---*/
    //strcpy(s2, s1);
    /*---end---*/
    /*---不用字符串处理函数---*/

    for (i = 0; s1[i] != '\0'; i++){
        s2[i] = s1[i];
    }
    s2[i] = '\0';

    /*---end---*/
    printf ("s1:%s\n", s1);
    printf ("s2:%s\n", s2);
    return 0;
}
追问
怎么运行不了呢? 两个END夹着的内容是什么意思?原谅我对C语言的白痴
追答

提示什么错误呢?

那是你要的两个方法两个方法

/*---字符串处理函数---*/
    strcpy(s2, s1);
/*---end---*/

这是用字符串处理函数的代码

另一个方法直接把这块代码替换成

    /*---不用字符串处理函数---*/
 
    for (i = 0; s1[i] != '\0'; i++){
        s2[i] = s1[i];
    }
    s2[i] = '\0';
 
    /*---end---*/

就是你要的另一个方法了

单纯的想你

2024-10-18 05:50:50

这个是随便的,没有什么硬性规定,只需要知道的是每个字符串结尾都有一个结束符'\0'.所以你在拷贝字符串的时候要把字符串长度加1
不忘殊归

2024-10-18 04:25:30

#include<stdio.h>
#include<string.h>

void main(void)
{
char ch1[50];
char ch2[50];
gets(ch1);
strcpy(ch2, ch1);
puts(ch1);
puts(ch2);
}