我必须仅使用C而不使用C ++来构建金字塔。我要做的就是这个
我有一个字符串“这是一个字符串”(是的,应该在那儿是空格),我必须从两侧“移出”一个字母并打印出来。像这样

"this is a string "
 "his is a string"
  "is a strin"
   "s a stri"
    " a str"


重复此操作,直到没有更多字符为止。我的老师说要使用子字符串,C中是否有任何内容


  从位置打印(索引0到索引x)
  从位置打印(索引1到索引x-1)


我知道我必须使用for循环。

最佳答案

这是家庭作业,所以我将帮助您入门。

#include <stdio.h>
#include <string.h>

int main(void) {
    char src[] = "this is a test string";
    char dest[5] = {0}; // 4 chars + terminator
    for (int i = 0; i * 4 < strlen(src); i++) {
        strncpy(dest, src+(i*4), 4);
        puts(dest);
    }
}


输出:

this
 is
a te
st s
trin
g


因此,对于您的金字塔问题,您将需要采用原始字符串的子字符串。将子字符串的开头设置为原始字符串之前的一个字符,并将strlen(original) - 1设置为结束字符。然后循环该过程。

关于c - 用C制作金字塔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22775107/

10-12 13:10