[英]How do you use scanf() or scanf_s() to ask the user for a string of characters?
[英]How do you use scanf to read user input and create a string from what the user types?
我对编程很陌生,我正在努力尝试将指针与 arrays 和字符串连接起来。
int scanString();
int main(void)
{
char string[] = {};
scanString(string);
}
int scanString(char * string)
{
printf("Enter a string without spaces and hit enter: ");
scanf("%s", string);
int length = sizeof(*string);
for(int i=0;i<length;++i){
printf("%c", string[i]);
}
return 0;
}
我修复了从 main 调用 function 的方式,现在我不再有分段错误,但现在它只打印出我输入的字符串的第一个字母,因为我正在执行int length = sizeof(*string)
这只是单个字符。 我对如何正确声明int length
以匹配我输入的字符串的长度感到困惑。
找出 C 中字符串长度的唯一方法是遍历所有字符串,直到到达结尾。
在 C 中,字符串的结尾由 null 字符标记,可以转义为'\0'
。
知道了这一点,我们可以编写如下代码:
int length = 0;
while (string[length] != '\0')
length++;
上面的代码逐个字符地遍历整个字符串,增加长度直到找到 null 字符。 当循环退出时,以存储在length
变量中的字符串的长度结束。
注意:有一个名为strlen
的 function(原型在string.h
header 文件中)就是这样做的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.