这是一个唯一的三角形,与所有其他三角形不同,它以空格分隔的方式打印单词。我正在寻找的答案不在我已经检查过的任何其他问题中。
输出应如下所示
这
是
这是
这是最好的
这是最好的方法
这是最好的方法
这是花费
的最好方法这是花费时间的最好方法
到目前为止,我拥有的代码是
#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
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] 删除。
我来说两句