| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 643 人关注过本帖
标题:谁帮我去掉代码编译时的3个警告提示.
只看楼主 加入收藏
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
结帖率:84.21%
收藏
已结贴  问题点数:10 回复次数:5 
谁帮我去掉代码编译时的3个警告提示.
程序代码:
#include "string.h"
char *huiwen(char *str)
{
    char *p1,*p2;
    int i,t=0;
    p1=str; p2=str+strlen(str)-1;
    for(i=0;i<=strlen(str)/2;i++)
        if(*p1++!=*p2--)
        {t=1;break;}
        if(t==0)
            return
                ("yes!");
        else
            return
                ("no!");
}
void main()
{
    char str[50];
    printf("Input:");
    scanf("%s",str);
    printf("%s\n",huiwen(str));
}
如题,VC++6.0编译环境下出现3个警告,分别是什么意思,如何修改代码消除所有提示。
warning C4018: '<=' : signed/unsigned mismatch
warning C4013: 'printf' undefined; assuming extern returning int
warning C4013: 'scanf' undefined; assuming extern returning int

这段代码的意思是:判断输入字符串是否为回文数,如果是则返回主函数输出yes否则返回输出no.

[ 本帖最后由 默默学习 于 2011-3-7 19:18 编辑 ]
2011-03-07 19:16
wuzhanghao88
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:146
注 册:2009-10-25
收藏
得分:4 
#include "string.h"
#include"stdio.h"//修改地方   用于printf,scanf函数
char *huiwen(char *str)
{
    char *p1,*p2;
    int i,t=0;
    p1=str; p2=str+strlen(str)-1;
    for(i=0;i<=(strlen(str)/2);i++)//优先级
        if(*p1++!=*p2--)
        {t=1;break;}
        if(t==0)
            return
                ("yes!");
        else
            return
                ("no!");
}
void main()
{
    char str[50];
    printf("Input:");
    scanf("%s",str);
    printf("%s\n",huiwen(str));
}
2011-03-07 19:22
瓦药墙
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:218
专家分:556
注 册:2009-9-16
收藏
得分:3 
#include "string.h"
#include <stdio.h>

char *huiwen(char *str)
{
    char *p1,*p2;
    int i,t=0;
    p1=str; p2=str+strlen(str)-1;
    for(i=0;i<=(int)strlen(str)/2;i++)
        if(*p1++!=*p2--)
        {t=1;break;}
        if(t==0)
            return
                ("yes!");
        else
            return
                ("no!");
}
void main()
{
    char str[50];
    printf("Input:");
    scanf("%s",str);
    printf("%s\n",huiwen(str));
}
2011-03-07 19:22
瓦药墙
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:218
专家分:556
注 册:2009-9-16
收藏
得分:0 
呃, 给楼上上抢先了一步
2011-03-07 19:23
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
汗,居然把标准输入输出头文件给忘了。
哥们,问最后个问题。。
strlen(str)不是计算的串数吗,它难道返回的不是整型吗?
为什么还要 (int)strlen(str) 强制转化为整型呢,求指教。。


[ 本帖最后由 默默学习 于 2011-3-7 19:40 编辑 ]
2011-03-07 19:35
瓦药墙
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:218
专家分:556
注 册:2009-9-16
收藏
得分:3 
strlen的返回值是size_t

而size_t是

size_t unsigned integer Result of sizeof operator.  STDDEF.H and other include files

就是unsigned int

详见MSDN
2011-03-07 19:59
快速回复:谁帮我去掉代码编译时的3个警告提示.
数据加载中...
 
   



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

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