我必须仅使用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/