A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. // 练习:编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0)
  2. #include <stdio.h>

  3. int string_len(char *s)
  4. {
  5.     // 1.定义一个新的指针变量指向首字符
  6.     char *p = s;
  7.    
  8.     while ( *s++ ) ;
  9.    
  10.     return s - p - 1;
  11. }

  12. int main()
  13. {
  14.     char *name = "itcast男";
  15.    
  16.     int v = string_len(name);
  17.    
  18.     printf("%d\n", v);
  19.    
  20.     return 0;
  21. }
复制代码

1 个回复

倒序浏览
主要讲解 int str_len()函数:
将name传入此函数后,指针s和指针p都指向name的开头字母的内存地址;然后*s++开始遍历每个字母的值是否为真,又因为字符串以\0结束,并且 \0 的ASC码值为0,所以此时停止遍历,但是此时指针 s 保存的内存地址是 \0 的地址,所以是 return s-p-1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马