我的代码下面使用指针获取字符串长度有什么问题?

时间:2017-01-29 04:23:28

标签: c string pointers

如果行" 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);
}

1 个答案:

答案 0 :(得分:3)

  1. 不比较section_id | lecture_id | 1 3 1 1 1 2 2 5 3 4 指向的内容。

    c
  2. 错误的类型。使用// while(c!='\0') while(*c != '\0') size_t可能不够。所有数组大小以及 string 长度都适合int

    size_t
  3. // int str_len(char *s){ size_t str_len(char *s){ 适用于strlen()

  4. 一起

    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