如果行" n = str_len(s);"注释,n打印,否则它只是编译,但运行时,没有任何反应。需要帮助了解这里缺少的内容。感谢。
// C Program to get string length
#include<stdio.h>
//int str_len(char *s);
int str_len(char *s){
printf("in function");
char *c =s;
while(c!='\0')
c++;
return c-s;
}
int main(){
char *s="Hello World";
int n=0;
//printf("n = %d",n);
//printf("String :%s\n",*s);
n = str_len(s);
//printf("String :%s",*s);
printf("Length :%d\n",n);
}
答案 0 :(得分:3)
不比较section_id | lecture_id |
1 3
1 1
1 2
2 5
3 4
指向的内容。
c
错误的类型。使用// while(c!='\0')
while(*c != '\0')
。 size_t
可能不够。所有数组大小以及 string 长度都适合int
。
size_t
// int str_len(char *s){
size_t str_len(char *s){
适用于strlen()
一起
const char *
参考size_t str_len(const char *s) {
// printf("in function");
const char *c = s;
while(*c) {
c++;
}
return (size_t) (c - s);
}
C11§7.23.6.31