我正在讀取文件中的文本,並確定該字符串是否以#
(不包括空格) 開頭,並且如果在#
之前沒有其他字符(不包括空格),則將其寫入單獨的文件。
我們應該保留字符串中的空白。 如果在#
之前有空白區域,但不會寫入它。我不確定這是否是fgets
問題,我不知道或另一個問題 。無法識別循環中的空格爲char?
我相信我的算法是一個有點笨拙
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
我下週要考試,試圖得到最好的 可能的理解我可以在短時間內 我已經離開。
我硬編碼我的價值觀張貼清晰度 – 2014-08-28 14:34:36
我不認同這個問題的目標。 「寫它」中的「它」意味着什麼? 「它」是字符「#」還是「它」是指包含「#」的「行」?你是否必須在包含「#」的行中寫出每個字符,還是隻寫出行中「#」右側的那些字符?一行作爲「abcd#hello」會發生什麼?在這種情況下必須輸出什麼?而不包含「#」的行會發生什麼?而像這樣的例子會發生什麼:「12#34#56」? – pablo1977 2014-08-28 14:42:56
除此之外:請不要使用'fprintf':'fprintf(f2,str)',否則如果字符串中有'%'符號,可能會產生一個令人討厭的驚喜。喜歡文字格式的字符串:'fprintf(f2,「%s」,str)' – 2014-08-28 14:45:53