字符串三角形,以空格作为分隔符C语言

鹿

这是一个唯一的三角形,与所有其他三角形不同,它以空格分隔的方式打印单词。我正在寻找的答案不在我已经检查过的任何其他问题中。

输出应如下所示



这是
这是最好的
这是最好的方法
这是最好的方法
这是花费
的最好方法这是花费时间的最好方法

到目前为止,我拥有的代码是

#include <stdio.h>

int main()
{

    char msg[]="this is the best way to spend time for reedaf";
    int inn=1, out, i=0, max;
    max=(sizeof(msg)/sizeof(int))+1;
    char *output;
    char *spc=" ";
      output=strtok(msg,spc);
    for(out=1;out<max;out++){

        for(i=0;i<out && output != NULL ;i++){

      printf("%s ", output);
      output=strtok(NULL,spc);

          }

    printf("\n");

    }
    return 0;
}

这将生成此输出


消磨时间
最好方法

所以请帮我,我找不到内心的平静

我需要以数组中的起始单词开始每一行。那么下一行应该以数组中的起始单词开始,然后是下一个单词。那么下一行应该再次以数组中的起始单词开始,然后是下一个单词,然后是下一个单词,依此类推。

请不要使用中断;或memcpy

chux-恢复莫妮卡

OP的使用strtok()不会根据需要恢复字符串,而只是沿字符串前进。

遵循是候选人的简化。

void printTri(char *s) {
  for (size_t i = 0; s[i]; i++) {
    if (s[i] == ' ') {
      s[i] = '\0';
      puts(s);
      s[i] = ' ';
    }
  }
  puts(s);
}

int main(void) {
  char msg[] = "this is the best way to spend time for reedaf";
  printTri(msg);
  return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章