1 c string pointers char string-length
函数计算字符串长度; 我认为这里的逻辑是正确的:
int strlength(char *s)
{
int count=0;
while(*s!='\0')
{
count++;
s++;
}
return count;
}
int main(void) {
char *s;
int length;
printf("enter your string ");
scanf("%s",s);
length = strlength(s);
printf("string length:%d",length);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在这里正确地接受了字符串并分配它吗?任何人都可以解释为什么我在这里得到分段错误?
你s必须指出一些事情.以下是分配128个字节的示例:
s = malloc(128);
Run Code Online (Sandbox Code Playgroud)
完成后,请务必释放内存:
free(s);
Run Code Online (Sandbox Code Playgroud)
请注意,您必须限制可以从用户读取的数量.
scanf("%127s", s);
Run Code Online (Sandbox Code Playgroud)
我为NUL终结器留了一个额外的字节.