c - 将 4 行字符串放在一起并计算单词数

标签 c string

错误行是:strcpy( tmp, row1+ row2 + row3 + row4 );

我不知道如何将所有行放在一起然后计算单词数?

我尝试创建函数,然后在 IF 之前调用它,但没有成功。

我还考虑过改变 int 中的 char 然后在 prinft 中显示它,还尝试创建一个数组然后将所有行放入其中..

我该怎么做?

int main() {

char row1[256];
char row2[256];
char row3[256];
char row4[256];

printf("4 rows of lyric:\n");
fgets(row1,100,stdin);
fgets(row2,100,stdin);
fgets(row3,100,stdin);
fgets(row4,100,stdin);

char *tmp[1000];
strcpy( tmp, row1+ row2 + row3 + row4 );

int count=0;
char *cur= tmp;

for (;;)
{
    while (*cur == ' ')
    {
        *cur++;
    }

    if (*cur == 0)
    {
        break;
    }

    count++;

    while (*cur != 0 && *cur != ' ')
    {
        *cur++;
    }
}

char a1=row1[strlen(row1)-1];
char a2=row1[strlen(row1)-2];
char a3=row1[strlen(row1)-3];

char b1=row2[strlen(row2)-1];
char b2=row2[strlen(row2)-2];
char b3=row2[strlen(row2)-3];

char c1=row3[strlen(row3)-1];
char c2=row3[strlen(row3)-2];
char c3=row3[strlen(row3)-3];

char d1=row4[strlen(row4)-1];
char d2=row4[strlen(row4)-2];
char d3=row4[strlen(row4)-3];

    if( a1==d1 &&
     a2==d2 &&
     a3==d3 &&
     b1==c1 &&
     b2==c2 &&
     b3==c3 ) {

            printf("1 = 4 and 2 = 3, number of words %c." cur);

}
else if ( a1==c1 &&
          a2==c2 &&
          a3==c3 &&
          b1==d1 &&
          b2==d2 &&
          b3==d3 ) {

            printf("1 = 3 and 2 = 4, number of words %c.", cur);

}
else if ( a1==b1 &&
          a2==b2 &&
          a3==b3 &&
          c1==d1 &&
          c2==d2 &&
          c3==d3 ) {

            printf("1 = 2 and 3 = 4, number of words %c.",cur);

}

else {

        printf("Nijedna rima nije pronadjena u strofi!");

}


return 0;

}

最佳答案

 char * stpcpy(char * restrict dst, const char * restrict src);

您传递的参数不是char*类型。

此外,您不能在 c 中使用 + 连接字符串。使用 strcatstrncat

作为对用户评论的回复:-

有3件事你应该记住

  • 第一个参数应该是可修改的。
  • 第一个参数有足够的空间来容纳组合字符串。
  • 第一个参数和第二个参数之间没有重叠。

牢记这 3 条规则,就可以使用它们。

关于c - 将 4 行字符串放在一起并计算单词数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47270418/

相关文章:

c++ - 嵌套函数调用快还是不快?

c - 准确预测任意浮点格式之间的转换舍入误差

python - 检查字符串是否包含两个相同字符的方法?

c++ - 如何在不使用结尾的分隔符的情况下从字符串构建逗号分隔的列表?

c - 关于使用 while to "embrace"我的代码而不是调用 main() 的另一个问题

c - 在 C 中,如何从用户定义的函数中获取值,然后在另一个用户定义的函数中打印出来?

c - 如何跟踪 malloc 和 free?

c - 我的程序不会按条件停止

php - PHP 如何使用比较运算符比较字符串?

javascript - 如何在 javascript 的正则表达式中使用 # :. [ 等字符定义单词边界