#include<stdio.h>
#include<string.h>
int main(){
char str[]="01a234b5c678def9gh";
int j=0;
while(j<strlen(str)){
...
}
return 0;
}
warning:
C语言出现warningC4018: ‘<’ : signed/unsigned mismatch.
【原因】
strlen函数返回的类型是size_t,是 unsigned int (无符号整型)。
这里 j 是 int 型,因此类型不匹配。需要强制类型转换。
方法(1) 将strlen(str)赋给一个int型变量:(相当于把strlen(str)转换)
int len=strlen(str);
while(j<len){...}
方法(2) 将 j 强制类型/转换:
while((size_t)j<strlen(str)){...}