我想知道words []的长度,但这可以告诉我。我该如何解决?
int main(int argc, const char * argv[]) {
char test[] = "ls test";
f_sparce_arg(test);
return 0;
}
char * f_sparce_arg(char words[]){
int words_length;
words_length = strlen(words); /* warning: Implicit conversion
integer precision: 'unsigned
long' to 'int' */
printf("%d", words_length);
return "";
}
// warning: Implicit conversion integer precision: 'unsigned long' to 'int'
什么strlen
功能的回报是size_t
,所以你应该用它来存储它的返回值。
char * f_sparce_arg(char words[]){
size_t words_length; /* use proper type */
words_length = strlen(words);
printf("%zu",words_length); /* the format to print size_t value is %zu */
return "";
}
不幸的是,%zu
某些编译器或库不支持格式。另一种方法是,如果字符串不会那么长,则将返回值转换为int
。
char * f_sparce_arg(char words[]){
int words_length;
words_length = (int)strlen(words); /* explicitly cast the result to avoid warnings */
printf("%d",words_length);
return "";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句