Ubuntu C 编程的小疑问

独孤九剑贰 2013-10-13 03:35:30
在Ubuntu中编写C程序时使用strcat函数报警
zfsx.c: In function ‘main’:
zfsx.c:30:7: warning: incompatible implicit declaration of built-in function ‘strcat’ [enabled by default]
strcat(c,p);
^
但是可以正常输出程序结果。求指导
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
做或不做 2013-10-13
  • 打赏
  • 举报
回复
引用 3 楼 abc594986308 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 不兼容的隐式申明 代码加 #include <stdio.h> 了么?
加了,等以下哈,这个程序不懂的第放还蛮多的,贴代码,你给瞧瞧 /* *将已经升序拍还的字符串a,b按升序归并到c中并且输出 #include <stdio.h> int main(void) { char a[100],b[100],c[200],*p; int i = 0 , j = 0 , k = 0; printf("please input string a:\n"); fgets(a,100,stdin); printf("please input string b:\n"); fgets(b,100,stdin); while(a[i] != '\0' && b[j] != '\0') { if(a[i] < b[j]) { c[k] = a[i]; i++; } else { c[k] = b[j]; j++; } k++; } c[k] = '\0'; if(a[i] == '\0') p = b + j; else p = a + i; strcat(c,p); fputs(c,stdout); } 这程序有点不懂啊,纠结[/quote] strcat 是字符串连接函数 属于 标准库 string头文件里面的 建议你多看看C标准库这本书 里面有库函数的实现 记得如果好使了 把分给我 我今天还没得分呢
独孤九剑贰 2013-10-13
  • 打赏
  • 举报
回复
引用 6 楼 u011779875 的回复:
加上头文件 <string.h> 就好了
.....
独孤九剑贰 2013-10-13
  • 打赏
  • 举报
回复
引用 3 楼 abc594986308 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 不兼容的隐式申明 代码加 #include <stdio.h> 了么?
加了,等以下哈,这个程序不懂的第放还蛮多的,贴代码,你给瞧瞧 /* *将已经升序拍还的字符串a,b按升序归并到c中并且输出 */ #include <stdio.h> #include <string.h> int main(void) { char a[100],b[100],c[200],*p; int i = 0 , j = 0 , k = 0; printf("please input string a:\n"); fgets(a,100,stdin); printf("please input string b:\n"); fgets(b,100,stdin); while(a[i] != '\0' && b[j] != '\0') { /*将a[i]中的元素与b中元素逐个比较,是a[0]。。a[1]与b所有元素*/ if(a[i] < b[j]) { c[k] = a[i]; i++; } else { c[k] = b[j]; j++; } k++; } c[k] = '\0'; if(a[i] == '\0') p = b + j;/*指针移位*/ else p = a + i; strcat(c,p);/*将p指向开始的字符串连接到c中*/ fputs(c,stdout); } 这程序有点不懂啊,纠结[/quote] 通过查询,我弄明白了。是这样的 strcat包含在'string.h'库函数中,要加上这个。
做或不做 2013-10-13
  • 打赏
  • 举报
回复
加上头文件 <string.h> 就好了
独孤九剑贰 2013-10-13
  • 打赏
  • 举报
回复
引用 2 楼 wangdahu888 的回复:
用的什么编译器,gcc不会出现这种问题吧
用的就是gcc啊
独孤九剑贰 2013-10-13
  • 打赏
  • 举报
回复
主要是那个while语句不懂
独孤九剑贰 2013-10-13
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
不兼容的隐式申明
代码加 #include <stdio.h> 了么?

加了,等以下哈,这个程序不懂的第放还蛮多的,贴代码,你给瞧瞧
/*
*将已经升序拍还的字符串a,b按升序归并到c中并且输出
#include <stdio.h>
int main(void)
{
char a[100],b[100],c[200],*p;
int i = 0 , j = 0 , k = 0;
printf("please input string a:\n");
fgets(a,100,stdin);
printf("please input string b:\n");
fgets(b,100,stdin);
while(a[i] != '\0' && b[j] != '\0')
{
if(a[i] < b[j])
{
c[k] = a[i];
i++;
}
else
{
c[k] = b[j];
j++;
}
k++;
}
c[k] = '\0';
if(a[i] == '\0')
p = b + j;
else
p = a + i;
strcat(c,p);
fputs(c,stdout);
}
这程序有点不懂啊,纠结
  • 打赏
  • 举报
回复
用的什么编译器,gcc不会出现这种问题吧
max_min_ 2013-10-13
  • 打赏
  • 举报
回复
不兼容的隐式申明 代码加 #include <stdio.h> 了么?

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧