gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:43 25 4
gpt4 key购买 nike

如果行“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. 不比较c 指向的内容。

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

    // int str_len(char *s){
    size_t str_len(char *s){
  3. strlen()const char *

  4. 配合使用

一起

size_t str_len(const char *s) {
// printf("in function");
const char *c = s;
while(*c) {
c++;
}
return (size_t) (c - s);
}

引用 size_t strlen(const char *s); C11 §7.23.6.3 1

关于c - 我下面使用指针获取字符串长度的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com