繁体   English   中英

如何使用 scanf 读取用户输入并根据用户键入的内容创建字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM