标题:这个 warning是咋回事儿啊?
只看楼主
Oscar_0049
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-29
 问题点数:0 回复次数:7 
这个 warning是咋回事儿啊?

函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第一个字符放在第0位中)
例如输入ADFESHDI,应输出AFESDI
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 80
void fun(char s[],char t[])
{
int i,j=0;
for(i=0;i<strlen(s);i++)
if(i%2==0||s[i]%2!=0)
t[j++]=s[i];
t[j]='\0';
}

void main()
{
char s[N],t[N];
printf("\nPlease enter string s:");
gets(s);
fun(s,t);
printf("\nThe result is:%s\n",t);
}

可以运行,但有个warning:请大家指教

E:\C\mn6'.c(8) : warning C4018: '<' : signed/unsigned mismatch

mn6'.obj - 0 error(s), 1 warning(s)

搜索更多相关主题的帖子: warning 字符 include void fun 
2007-07-16 15:19
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 
我试过了,你是用什么编的啊,WIN-TC可以通过啊

2007-07-16 15:33
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
得分:0 
这个应当问题不大
string.h里面有这两行

typedef unsigned size_t;
size_t strlen(const char *s);

2007-07-16 15:33
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 

将头文件的形参改做char *s吧,后果自负哦


2007-07-16 15:39
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 
要不加个强制类形转换吧,将

for(i=0;i<strlen(s);i++)
改为:
for(i=0;i<(int)(strlen((const char *)s));i++)

2007-07-16 16:12
Oscar_0049
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-29
得分:0 
以下是引用星星鱼虾蟹在2007-7-16 16:12:34的发言:
要不加个强制类形转换吧,将

for(i=0;i<strlen(s);i++)
改为:
for(i=0;i<(int)(strlen((const char *)s));i++)

我用的是VC.改为for(i=0;i<(int)strlen(s);i++)后可以了,谢谢啊!
只是:难道strlen(s)不是整型么?还要强制定义一下


如果不能改变环境,那就要适应环境!
2007-07-17 12:21
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 

可能是函数反回的是size_t类形(实际上是unsigned)与i的int形有点不同,而VC对类形间的计算过于敏感吧...(未经证实,只是猜的,毕竟自己用的是WIN-TC)

[此贴子已经被作者于2007-7-17 15:10:48编辑过]


2007-07-17 15:08
jackys2006
Rank: 1
等 级:新手上路
帖 子:195
专家分:0
注 册:2006-3-10
得分:0 
这个警告根本无所谓,程序还是可以执行的嘛

2007-07-17 16:31



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




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

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