【发布时间】:2021-12-26 10:44:43
【问题描述】:
我尝试创建自己的 strlen 函数,当我尝试运行它时,我的计数器总是得到 +1 值。例如。如果是 3 个字符,它将返回 4 个等。这是我的代码:
#include <stdio.h>
#define MAX 1000
void length(char string[MAX]){
int i, counter = 0;
for(i=0;string[i]!='\0';i++){
counter++;
}
printf("Your string has %d characters", counter);
}
int main(){
char ch[MAX];
printf("Enter a string: ");
fgets(ch, MAX, stdin);
length(ch);
}
对于像我这样的初学者的任何提示也将不胜感激,谢谢! :)
【问题讨论】:
-
fgets将\n留在字符串的末尾。 -
@RetiredNinja 是否应该基于
length()逻辑? -
@KagisoMarvinMolekwa 是的,
\n!=\0。 -
@RetiredNinja 哦...是的。
-
是不是因为换行后有一个空字符?:是的,否则就不是字符串。根据定义,字符串以空字符结尾。