【问题标题】:How to make my c-program recognize "\n" characters and ignore them如何让我的 c 程序识别“\n”字符并忽略它们
【发布时间】:2015-11-22 02:27:14
【问题描述】:

我正在制作一个程序,假设检查某个输入字符串是否仅包含某种类型的字符(ASCII 字符)。我有一个属于 ASCII 标准的字符串,对于输入字符串中的每个字符,我检查(逐个字符)它是否存在于 ASCII 字符串中。如果字符确实存在,我会将它们移动到一个新字符串,一个输出字符串。如果它们不存在,我会通知用户并退出程序。

但是,我正在制作的输入字符串既可以从命令行创建,也可以从文本文件创建。我的文本文件似乎总是包含几个换行符,并且它们总是以换行符(“\n”字符)结束,这总是让我的程序报告错误,无论是在字符串的末尾还是在中间。

如何重新排列以下程序的代码以使其识别“\n”字符?下面是代码的简化,没有显示我是如何定义输入字符串的,也没有显示带有 ASCII 字符的字符串。

char inputstring[];
char outputstring[];
char asciicharacters[];
* Here I read a text-file to the inputstring, and the ASCII-characters to the asciicharacters-string *

int k,i=0;

for(i=0;i<strlen(inputstring);i++)
{

    for(k=0;k<strlen(asciicharacters);k++)
    {

        if(inputstring[i] == asciicharacters[k])
        {
            outputstring[i] = inputstring[i];
            break;
        }
        else if(k == strlen(asciicharacters)-1)
        {
            printf("The character: %c, is not ASCII-standard",input[i]);
            exit(1);
        }

    }

}

当我到达“\n”字符时,如何创建另一个使程序跳过(并作为 ASCII 标准接受)的条件?

【问题讨论】:

  • 注意 '\n' 是一个 ASCII 字符。通常它起源于LF,或CR 或成对的CR-LF,文件系统转换为'\n'
  • @chux 给我的 ASCII 字符密钥不包含该字符,或者它不读取它。不过我会再试一次。

标签: c string comparison newline


【解决方案1】:

您可以在最后的else if 之前添加此else if

else if( inputstring[i] == '\n' )
{
    break;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多