C语言 分割故障

pn9klfpd  于 2022-12-22  发布在  其他
关注(0)|答案(1)|浏览(159)

我想在不使用strlen()函数的情况下找到一个字符串的长度。但是它给了我分段错误。

#include <stdio.h>
#include <string.h>

unsigned string_length(char str[])
{
  int i;
  printf("Enter a string:");
  scanf("%s",&str);
  for (i = 0; str[i] != '\0';++i)
  {
  }
  printf("Length of string: %d", i);
  return i;
}
int main()
{
  int ausgabe;
  char str[100];
  ausgabe = string_length(str[100]);
  return 0;
}

这就是我所做的,我已经尝试了所有可能的变化(所有我知道的(while,for,even with if)),但似乎没有一个是我的问题的答案。* 我是编程新手,欢迎专业人士的建议 *

pod7payv

pod7payv1#

不需要将&str传递给scanf(“%s”,&str);只传递str(不带引用操作符)给scanf。另外,创建函数的更好方法如下(参见string_length函数的输入参数):

#include <stdio.h>
#include <string.h>

unsigned string_length(char str[])
{
  int i;
  //printf("Enter a string:");
  //scanf("%s",&str);
  for (i = 0; str[i] != '\0';++i)
          ;
  //printf("Length of string: %d", i);
  return i;
}
int main()
{
  int ausgabe;
  char str[100];
  printf("%s", "Enter a string:");
  scanf("%s",str);
  ausgabe = string_length(str);
  printf("Length of string: %d\n", ausgabe);

  return 0;
}

相关问题