#include"stdio.h"
#include"string.h"
#include"conio.h"
char *subcut(char *a,int s,int len);
main()
{
int s=3,len=5;
char *ch="hakdjfnvauerjkshohrjauraskjg\n";
printf("%s\n",subcut(ch,s,len));
}
char *subcut(char *a,int s,int len)
{
static char substr[100];
int n;
char *ps;
ps=substr;
if(s<1||s>strlen(a)||len<1) ////warning在这
printf("data error\n");
else
for(n=1,a+=s-1;n<=len && *a!='\0';n++)
*ps++=*a++;
*ps='\0';
return(substr);
}
warning C4018: '>' : signed/unsigned mismatch 是什么原因?
答案:2 悬赏:80 手机版
解决时间 2021-03-15 00:28
- 提问者网友:末路
- 2021-03-14 15:51
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-03-14 16:33
s是int型的,而strlen函数定义的返回类型是unsigned int型的,所以会报这个告警~
setlen之所以定义为返回unsigned int 是因为一个字符串的长度,肯定大于等于0~
setlen之所以定义为返回unsigned int 是因为一个字符串的长度,肯定大于等于0~
全部回答
- 1楼网友:荒野風
- 2021-03-14 16:57
第一个,类型错误
前后类型不符 具体是什么 看你的定义了 应该是一个是有符号数的,一个是无符号的,如果超出有符号数的上限,则会出错,所以提示警告
第二个 没有声明,好像是你没有包含库文件(头文件) 找一下 clrsr在哪个文件里 前面包含进去
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯