c语言指针字符串问题

main(){char*s;mygets(s);}mygets(char*s){charc;while(c=getchar()!='\n'){*s++=c;}}编译通不过... main()
{
char *s;
mygets(s);
}
mygets(char *s)
{
char c;
while(c=getchar()!='\n')
{
*s++=c;
}
}
编译通不过
while((c=getchar())!='\n')改正还是通不过
展开
 我来答
smile2008_k
2009-09-18 · TA获得超过163个赞
知道答主
回答量:45
采纳率:100%
帮助的人:32.9万
展开全部
#include<stdio.h>
void mygets(char *s)
{
char c;

while(c=getchar()!='\n')
{
*s++=c;
}
}
void main()
{
char *s;
mygets(s);
}
我帮你改了一下,你的函数要先定义,再调用。还有返回值如果不字,不会报错,但是会警告。给点分吧!
江小右
2009-09-18 · TA获得超过6928个赞
知道小有建树答主
回答量:1195
采纳率:0%
帮助的人:834万
展开全部
main()
{
char s[100];//这里也可以改成分配内存
//或者是 char s;s=(char *)malloc(100);

mygets(s);
}
mygets(char *s)
{
char c;
while(c=getchar()!='\n')
{
*s++=c;
}
}
其他的是不会有问题的,返回值的话默认是void ,可以不用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kenzhon
2009-09-18 · TA获得超过2346个赞
知道小有建树答主
回答量:957
采纳率:0%
帮助的人:1065万
展开全部
1、先定义后使用,把mygets函数放到main函数之前
2、char* s;只是定义了一个指针,但是没有分配空间,即使程序编译通过,执行的时候会出段错误。可改用数组char s[MAX],MAX必须足够大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湛蓝水晶
2009-09-18 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
main前面要加一行函数声明,再把函数类型改成void,这样编译就通过了
void mygets(char *s);
还有,s是要分配内存的,不然你编译通过了运行会出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
继续继续X
2009-09-18 · TA获得超过233个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:113万
展开全部
没有返回值,在mygets前面加个void mian前面声明一下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
forKnowledge
2009-09-18 · TA获得超过334个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:154万
展开全部
char *s => char *s = new char[10]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式