如何使用scanf函数打印字符串的第n个项?

时间:2019-04-08 10:35:42

标签: c string pointers char c-strings

用户输入字符串后,控制台将不执行任何操作。

我有使用char string="enteraword"并能取出整个printfscanf函数的代码,但是我需要使用scanf函数的代码。

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

int main()
{
  char* string;
  printf("Enter a word: ");
  scanf("%s", string);
  char c=string[1];
  printf("The second letter in %s is %c", string, c);
  return 0;
}

1 个答案:

答案 0 :(得分:1)

此代码具有未定义的行为,您正在向scanf()传递未初始化的指针,要求其在其中存储字符串。

另外,请记住%s将在空格处停止,因此,目前尚不清楚“术语”在这里应表示什么。

尝试例如:

char string[1024];
if(scanf("%1023s", string) == 1 && string[0] != '\0')
{
  const char c = string[1];
  printf("The second letter of '%s' is '%c'\n", string, c);
}