c - 将用户输入存储在变量中,以便我可以从中获取子字符串

标签 c

在 C 编程中,如何将用户输入存储在变量中以便可以从中获取子字符串? 在控制台中输入“hello Point”时出现错误:子字符串为 NULL。这意味着我的word变量是空的?我到底做错了什么以及为什么?

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


int main()
{
   char word[100];

   printf ("Enter a word: ");
   scanf ("%s", word);
   const char needle[] = "Point";
   char *ret;

   ret = strstr(word, needle);

   printf("The substring is: %s\n", ret);
   return(0);
}

最佳答案

%s for scanf() 在发现空格时停止读取。

尝试使用 scanf("%99[^\n]", word); 代替。 (添加了 99 以避免缓冲区溢出)

关于c - 将用户输入存储在变量中,以便我可以从中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293316/

相关文章:

c - tolower 函数输出错误

c - 2 我的代码的主要问题

c - 我的程序在调用 `strcpy()' 时崩溃

c - 如何初始化二维数组中的第一行?

c - `_Generic` 类型作为输出

c - 线程入口函数和普通函数有什么区别?

c - 如何使用 C 压缩字符串并用其计数替换重复项?

php - 使用 ZVAL_STRING 避免 PHP 引擎崩溃

在c中将错误代码转换为摩尔斯电码

c - dev-c++ 上的异常标识符或 '(' 之前的 'for'