标题:C语言新手,一个简答的问题,求大神指导
只看楼主
木头羊W
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-8-26
 问题点数:0 回复次数:2 
C语言新手,一个简答的问题,求大神指导
请编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。
#include  <stdio.h>
#define    N    20
void NONO();
void  fun( char  *a , char  *s)
{int i;
for(i=0;i<N;i++)
a[i]=s[i];


}
main()
{  char  s1[N],  *s2="abcdefghijk";
   fun( s1,s2);
   printf("%s\n", s1);
   printf("%s\n", s2);
   NONO();
}

这个fun有错吗?然而我得到题目的结果
搜索更多相关主题的帖子: include C语言 字符串 
2015-08-26 18:23
ZZL_1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-6-22
得分:0 
a[i]前面应该要加“*”解引用
2015-08-26 18:54
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:0 
函数fun基本上是对的,只是没有注意到边界问题,
程序代码:
#include  <stdio.h>
#define    N    20
//void NONO();//??????
int main()
{
   char  s1[N],  *s2 = "abcdefghijk";
   void  funcopystr( char  *dest ,const char  *src);//函数调用前声明函数,因为很难保证函数的定义永远在调用的前面。
       
   funcopystr( s1,s2);
   printf("%s\n", s1);
   printf("%s\n", s2);
   //NONO();//??????
   return 0;
}


void  funcopystr( char  *dest ,const char  *src)//对于不需改变的参数添加const修饰,是应该养成的好习惯,函数名,变量名要有意义,如果要想做程序员,好的编程格式是必须的。
{
    int i;

    for(i=0;i<N;i++)
    {
       dest[i]=src[i];
       if(dest[i]=='\0') break;//if(dest[i]=='\0') retrun;//串src结束时退出循环或者退出函数
    }

    dest[N-1]='\0';//串src超长时在末尾添加串结束标志'\0',实际上截断了src,为了保证dest中是一个字符串结构。

    return;
}
2015-08-26 20:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456779-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.725412 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved