姬世鹏 发表于 2019-11-13 15:22:35

函数的调用,不知道为什么不能循环?输入字母串可调用一次,使用汉字直接乱码。

#include <stdio.h>

int main() {
        int num;
        char name1,name2;
    void COPY(char a[],char b[]);
    printf("请输入姓名1与姓名2\n");
    scanf("%s%S",&name1,&name2);
    COPY (name1,name2);
    printf("%s\t%s\n",name1,name2);
}
void COPY(char a[],char b[]){
   int i;
i=0;
while((a=b)!='\0')
++i;
return;
}

jackz007 发表于 2019-11-13 15:28:37

本帖最后由 jackz007 于 2019-11-13 16:24 编辑

    scanf("%s%S",&name1,&name2);

    必须要这么写才对

    scanf("%s%s" , name1 , name2) ;

    既然要拷贝,干嘛还要读入 2 个字符串?

#include <stdio.h>

void COPY(char a[] , char b[])
{
      int i = 0                         ;
      while((a = b) != '\0') i ++ ;
}

int main(void)
{
      char name1 , name2         ;
      printf("请输入姓名 : ")            ;
      scanf("%s" , name1)                ;
      COPY(name2 , name1)                ;
      printf("%s\t%s\n" , name1 , name2) ;
      return 0                           ;
}
页: [1]
查看完整版本: 函数的调用,不知道为什么不能循环?输入字母串可调用一次,使用汉字直接乱码。