【问题标题】:read user input string with space between quotes in C and keep the quotes读取 C 中引号之间有空格的用户输入字符串并保留引号
【发布时间】:2018-05-14 21:12:31
【问题描述】:

例如"task 1"

我可以使用什么字符类来保留引号?

【问题讨论】:

  • 您是否考虑使用scanf 从用户那里读取这样的字符串?
  • 您的意思是“我如何读取两组引号之间的用户输入?”如输入 "a" "b c" 会产生两个不同的字符串,"a""b c"?
  • 您要么误写了您的帖子character-class,要么应该明确说明您正在使用哪个正则表达式库。它也很不清楚你在问什么。演示您的问题的一些示例代码会很有帮助。
  • 您是否有理由保留引号?通常希望引号保护字符串中的空间,但 not 本身就是字符串的一部分。
  • 我正在考虑使用 scanf 来读取用户输入,这就是我要求字符类的原因。至于尝试,我有这个不保留引号的 \"%[^\"]\" 。

标签: c string character-class


【解决方案1】:

为了做你想做的事,你需要使用scanf 并且在字符串之间有你想要的预定数量的字符。这将构造一个字符串,在末尾保留文字引号和一个空字符,因此可以重新打印该字符串。

#include <stdio.h>

int main(void) 
{
    int charsToRead = 6;
    char inputString[9];
    char* inputPointer = inputString + 1;
    inputString[0] = '"';
    inputString[7] = '"';
    inputString[8] = '\0';
    printf("type something with quotes\n");
    scanf("\"%6c\"", inputPointer);
    printf("the captured string is %s", inputString);
    return 0;
}

要接收字符串“task 1”,需要在引号之间读取 6 个字符,如上所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多