c - 用C语言制作金字塔

标签 c loops substring

我必须只使用 C 语言而不是 C++ 来制作金字塔。我要做的是这个 我有一个字符串“这是一个字符串”(是的,应该有空格),我必须从两侧“删除”一个字母,然后打印它。像这样

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

重复此操作,直到没有更多字符为止。我的老师说使用子字符串,C 中有什么东西说

print from location (index 0 to index x)
print from location (index 1 to index 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/

相关文章:

r - 输入 `typ` 无法回收到 R 中的大小

SQL:用查询拆分逗号分隔的字符串列表?

MySql-拆分单元格并插入到另一个表中

c - 如何使用 GMP 计算 2 ^ -18?

c - 在二进制文件 C 上写入矩阵

performance - 如何计算已创建算法的理论运行时间?

javascript - Javascript 生成的表不显示

c++ - gcc 和 clang 在使用无符号值左移时产生不同的输出

C++ - 构建带有 header 的数据包并通过 UDP 套接字发送它

r - 如何对每个样本的多个观察值中的变量进行分箱?