gpt4 book ai didi

c - 不将空格识别为循环中的字符?

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:51 25 4
gpt4 key购买 nike

我正在从文件中读取文本并确定字符串是否以 # 开头(不包括空格)如果在 # 之前没有其他字符(不包括空格),我将它写入一个单独的文件。
我们应该保留字符串中的空格。如果 # 之前有空格,则不会写入它。我不确定这是否是一个 fgets 问题我不知道或其他问题。

我确定我的算法有点笨拙

int valid = 1;

while(fgets(str, 250,f1)!=NULL)
{
printf("read strings: %s",str);/*my test*/

for(i=0;i<strlen(str);i++)
{
if(str[i]=='#')
{
printf("strings: %s",str);/*my test*/
for(j=0;j<i;j++)
{
if(isspace(str[j])!=0)
{
valid=0;
break;
}
}
break;
}
else
{
valid=0;
}
}
if(valid==1)
{
fprintf(f2, str);
}
valid=1;
}

因此来自文件:

#the cat sat on# the mat  
the sunny day
#cats sit on mats

它会写:

#the cat sat on# the mat

我下周有考试,我正在努力取得最好的成绩 可能的理解我可以在我离开的短时间内。

最佳答案

如果第一个字符是空格,它将进入 else:

    if(str[i]=='#')
{
<snip>
}
else
{
valid=0; // This line is executed if str[0] is space
}

更好的方法是跳过,直到找到第一个非空格字符,如果它是“#”,则打印该行,否则不打印它。

关于c - 不将空格识别为循环中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com