鱼C论坛

 找回密码
 立即注册
查看: 1241|回复: 2

有关字符串复制

[复制链接]
发表于 2017-2-15 21:54:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(1)想知道为什么下面有关字符串复制的代码有什么问题(无法复制字符串,出现烫烫烫烫)
(2)为什么我调用copy_string时括号内要写(a,b)而不是(a[],b[])
  谢谢!
#include<stdio.h>

void main()
{
        char a[]="It's me!",b[40];
        void copy_string(char a[],char b[]);
        printf("a[]=%s\n",a);
        copy_string(a,b);                  //为什么不能写copy_string(a[],b[]);
        printf("b[]=%s\n",b);
}

void copy_string(char a[],char b[])    //将a数组中字符串复制到b数组中
{
        int i;
        for(i=0;*(a+i)!='\0';i++);
        {
                *(b+i)=*(a+i);
        }
        *(b+i)='\0';
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-16 09:22:02 | 显示全部楼层
#include<stdio.h>

void copy_string(char *a, char *b);      //函数声明,不要放到main函数里边,这样会显得很乱

int main(void)
{
        char a[]="It's me!",b[40];

        printf("a[]=%s\n",a);
        copy_string(a,b);                  //为什么不能写copy_string(a[],b[]);
        printf("b[]=%s\n",b);
        
        return 0;                             //VS 不支持返回值为空的main函数,环境问题
}

void copy_string(char a[], char b[])    //将a数组中字符串复制到b数组中这里等同于copy_string(char *a, char *b) 这里也是把数组的首地址传到了函数,进行了址传递,函数内容也是对指针的操作
{
        int i;
        for(i = 0;*(a+i)!='\0';i++)       //这里要去掉该行末尾的分号,不然大括号里边的内容只会执行一次,执行时i=8
        {
                *(b+i)=*(a+i);
        }
        *(b+i)='\0';
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-16 15:45:44 | 显示全部楼层
醴泉之水 发表于 2017-2-16 09:22
#include

void copy_string(char *a, char *b);      //函数声明,不要放到main函数里边,这样会显得很 ...

明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 22:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表