如何找到.txt文件中所有单词的首字母

时间:2019-01-21 14:59:10

标签: c

我在C语言和整个编程中有点绿,所以我需要任务方面的帮助。

我试图找到这个问题的答案,而我想到的只是这段代码有效,但是 输出:

vhiag
hwag
tiatg

必需的输出:

vhiag
hw
tiat
size=sizeof(ss)/sizeof(ss[0]);
        if(strcmp(op,"first")==0){

            while(1){
            if(fgets(ss,512,fp)==NULL){
                break;
                }
                first(ss,size);
            } 

        } 
void first(char spaces[],int size)
{
        int i=1;
        char r[size];
        r[0]=spaces[0];
        int j;
        for(j=0;j<size;j++)
        {

            if(spaces[j]==' ')
            {
                r[i]=spaces[j+1];
                        i++;
            }
        }
        r[i]='\0';
       printf("%s\n",&r); 
        return; 
}

1 个答案:

答案 0 :(得分:1)

您的first()函数将扫描呈现给它的整个数组,即所有size字节,而不考虑其中是否存在字符串终止符。因此,如果输入行短于上一行,则您的函数会巧妙地扫描第二行在第一行上的覆盖。

要在行尾停止扫描,请在看到终止符时从循环中中断:

    for (j = 0; spaces[j] != '\0'; j++)

您还可以在j达到或超过size的情况下中断(作为附加,而不是替代条件),但是在您的情况下这并不是必须的,因为您可以依靠fgets()在指定给它的字节数内提供该终止符。