| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1355 人关注过本帖
标题:不知道这个程序错误提示是什么意思?因为我是新手,可能有很多很多错误,
只看楼主 加入收藏
possessive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-4-7
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:9 
不知道这个程序错误提示是什么意思?因为我是新手,可能有很多很多错误,
#include<stdio.h>
#include<string.h>
int main()
{char lianjie(char,char);
char str1[30],str2[30];
gets(str1);
gets(str2);
printf("%s",lianjie(str1[30],str2[30]));
return 0;}
char lianjie(char x[30],char y[30])
{
return(strcat(x,y));
}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include return 
2016-04-26 19:38
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:8 
以下是引用possessive在2016-4-26 19:38:57的发言:

#include <stdio.h>
#include <string.h>
int main()
{char lianjie(char *,char *); //实参是指针常量
char str1[30],str2[30]; //最好str2不要30,改小点或者str1改大点。
gets(str1);
gets(str2); //后面加一句调用函数lianjie
printf("%s",lianjie(str1[30],str2[30])); //把调用子函数改成str1,而且你调用函数也搞错了,不是str1[30],str2[30].是str1,str2就好了。
return 0;}
char lianjie(char x[30],char y[30])
{
return(strcat(x,y)); //这个也错,返回0,strcat(x,y)另外写一句;
}
先规范写好来。再慢慢的向专业写法靠近,不要想一下子吃成胖子。
2016-04-26 20:26
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:8 
#include<stdio.h>
#include<string.h>
char lianjie(char *,char *);   //函数声明放在main之前
int main()
{
    //两个数组大小可以一致也可以一大一小。
    //主要要避免str2输入过多字符后加上str1中原有的字符后,不能让str1越界就可以了。
    char str1[40],str2[30];
    gets(str1);
    gets(str2);
    lianjie(str1,str2);        //函数调用
    printf("%s",str1);
    return 0;
}
char lianjie(char *x,char *y)
{
    strcat(x,y);
    return 0;   
}               

[此贴子已经被作者于2016-4-27 09:03编辑过]

2016-04-27 08:57
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
strcat用于将两个char类型链接的函数。
函数原型:extern char *strcat(char *dest,char *src);
参数:
dest 目标数组指针
src 源字符串指针
返回值:返回指向dest的指针
函数功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
注意事项:
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
使用时包含
#include <string.h>
2016-04-27 09:04
possessive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-4-7
收藏
得分:0 
回复 2楼 linlulu001
恩恩,好的,非常感谢,但是我还是有好多问题,希望你能帮我解答一下,为什么调用函数不能直接写到printf后面?为什么调用子函数写成str1?还有就是返回值为什么是0?谢谢
2016-04-27 20:19
possessive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-4-7
收藏
得分:0 
回复 4楼 wanglianyi1
非常感谢,是不是我用的这个程序用strcat这个函数,必须是用指针,否则是错的?因为课本上这一章的程序都没有用指针的
2016-04-27 20:21
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
本来就没用返回值,子函数可以定义为空函数(void型的),而你定义了非空函数。所以只好加个返回0了。
子函数的形参是指针常量。所以你只要把str1字符串组的首地址传给形参就好了。
还有调用函数是可以写在printf中的。只是看你那么不熟悉,建议不要那么快就这样写,等以后熟悉了再写在printf中。

[此贴子已经被作者于2016-4-27 22:44编辑过]

2016-04-27 22:41
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 6楼 possessive
不是的,用这个函数传递的参数是数组的首地址,所以用指针。
调用函数用什么类型数据的参数,还有用几个参数,都取决于你自定义函数所要实现的内容,也就是看你解决问题时候设计的算法。
你可以百度下形参与实参的联系和区别,或者说搜函数的调用
2016-04-28 15:13
possessive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-4-7
收藏
得分:0 
回复 7楼 linlulu001
谢谢
2016-04-28 17:02
possessive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-4-7
收藏
得分:0 
回复 8楼 wanglianyi1
谢谢
2016-04-28 17:03
快速回复:不知道这个程序错误提示是什么意思?因为我是新手,可能有很多很多错误 ...
数据加载中...
 
   



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

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