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

并输出S1和S2的字符串。
要求:分别用字符串处理函数和不用字符串处理函数编程

//仅供参考
#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---*/

就是你要的另一个方法了

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-12
这个是随便的,没有什么硬性规定,只需要知道的是每个字符串结尾都有一个结束符'\0'.所以你在拷贝字符串的时候要把字符串长度加1
第2个回答  2015-05-17
#include<stdio.h>
#include<string.h>

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

编程,输入一个字符串存入字符组S1中,然后将S1中的字符串复制到字符组...
s2[256]; int i; scanf ("%s", s1); \/*---字符串处理函数---*\/ \/\/strcpy(s2, s1); \/*---end---*\/ \/*---不用字符串处理函数---*\/ for (i = 0; s1[i] != '\\0';

...到字符数组s1中,将其中的非空格字符复制到字符数组s2中,再输出s2...
var s1,s2:string; i:integer;begin readln(s1);for i:=1 to s1 do if s1[i]<>' ' then s2:=s2+s1[i];write(s2);end.

C语言题目:编写函数strcopy,实现把字符串s1复制到s2。
void strcopy(char *s1,char *s2)\/*s1是接受字符串的内存的起始地址,s2是被复制字串起始地址*\/ { for ( ; *s2; ++s2,++s1)\/*从第一个开始,把s2中的字符,一个一个的复制到s1里,直到s2结束*\/ s1=*s2;s1='\\0';\/*那么复制完成后,s1中的所有字符均被覆盖了*\/ } ...

如何将输入一个字符串到s1,将其中的除数字外的其它字符复制到s2。
include <sstream> include <string> bool IsNumber(char ch){return ch >='0' || ch <='9';} bool ExceptNumber(const std::string& sSrc,std::string& sDes){ std::stringstream sStream;for(size_t uIndex=0;uIndex < sSrc.length();++uIndex){ if(!IsNumber(sSrc.at(uIndex)))s...

编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插...
public string insert(string s1,string s2,char ch){ string[] tempstr = s1.Split(ch.ToString()); \/\/\/将s1按照搜索到的字符进行分割,返回字符串数组,并丢失分割依据,即字符ch string news1 = "";for(int i=0;i<tempstr.Length;i++)\/\/\/组合新字符串;在第一个串和第二个串分割的...

从键盘输入一个字符串s1,再任意输入一个正整数k,将字符串s1的前k个...
从键盘输入一个字符串s1,再任意输入一个正整数k,使用循环就可以实现将字符串s1的前k个字符拷贝到字符串s2的。include <stdio.h> int main(){ int k,i;char s1[200],s2[200];gets(s1);scanf("%d",&k);for(i=0;i<k;i++)s2[i]=s1[i];s2[i]='\\0';printf("%s\\n",s2);retu...

C语言中如何编写一个字符串复制函数,并在主函数中调用它。
可以利用字符指针结合while循环的方式来编写字符串复制函数。具体实现方法可以参考如下程序:include<stdio.h>void str_copy(char *str1, char *str2) \/\/ 字符串复制函数{ while(*str1++ = *str2++); \/\/ 将字符串str2中的每个字符逐个复制到str1中,直到遇到字符串结束字符'\\0'}void ma...

...输入的字符存入一个数组,并将该数组的字符复制到另一个数组,去掉空...
include"stdio.h"void main(){char s1[50],s2[50];int i,j;gets(s1);for(i=0;i<n;i++){ if(s1[i]==32)continue;s2[j++]=s1[i];} puts(s2);} 应该可以,不信你试一下~

...s1[ ],char s2[ ],int pos),实现在字符串s1中的指定位置pos处插入...
include <stdio.h> include <string.h> void insert(char s1[],char s2[],int pos);void main(){ char s1[50],s2[50];int pos;gets(s1);gets(s2);printf("请选择要插入的位置: ");scanf("%d",&pos);insert(s1,s2,pos);} void insert(char s1[],char s2[],int pos){ int i...

C语言:从键盘输入两个字符串s1与s2,并在s1串中的最大字符后边插s2
void main(void){ char s1[400]="",s2[400]="",mch;int i,j,k,sub;printf("Type a string...\\ns1=");gets(s1);printf("Type another...\\ns2=");gets(s2);for(mch=i=0;s1[i];i++)if(mch<s1[i]){ sub=i;mch=s1[i];} strcats2,s1+sub+1);s1[sub+1]='\\0';strca...

相似回答