如何从命令提示符在c中输入一个空字符串

How to input an empty string in c from command prompt

我一直在修改自己的技能,就像我第一次接触 C 语言从头开始一样,我自己解决了一些问题。在我编写一个输出输入字符串长度的程序中,代码是这样的。

#include<stdio.h>
int main()
{
    char a[100];
    int n=0;
    printf("Enter the string : ");
    scanf("%s",a);
    while(a[n]!='[=10=]')
    n++;
    printf("length of %s is %d\n",a,n);
}

成功了。但是我突然想到为什么我们不输入一个空字符串并检查输出是否为 0(零)。我尝试在命令提示符下按回车键,我通常在其中 运行 我的代码。但它会继续询问输入,直到并且除非我输入了一个有效的输入,即带有字符的字符串。但是我如何从命令提示符输入手动字符串它是否会发生或是否会发生。希望我的问题得到解答?

你的以下

a[0] = '[=10=]';
scanf( "%99[^\n]", a );

if (scanf( "%99[^\n]", a ) == 0) a[0] = '[=11=]';

另一种选择是使用 fgets。但是即使输入为空,该函数也可以将换行符'\n'附加到输入字符串。您需要将其删除,例如

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

...

fgets( a, sizeof( a ), stdin );
a[ strcspn( a, "\n" ) ] = '[=12=]';