在"否定"上填写数组值位置

时间:2014-11-22 15:09:59

标签: c arrays

我有一个包含一些值的数组,例如。 ABCDEF而我需要做的就是当我想要打印出例如前4个字符ABCD时,我想打印出第一个字符前面的3个字符和最后一个字符后面的3个字符:{ {1}}正如你所看到的,---ABCDEF-替换了char,因为它前面没有任何内容,这就是我想要做的事情。那些3 ---位于-3 -2 -1的位置但是当数组从0开始时我怎么能这样做呢?或者还有其他更简单的方法吗?并且在我要打印的那些4之后加上字符。

希望我解释得足够好。

以下是我现在所拥有的内容,与描述相同:

-

1 个答案:

答案 0 :(得分:0)

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

int main() {
    char original[16] = "ABCDEF";
    char other[16] = {0};
    size_t len = strlen(original);
    memset(other, '-', len + 4);
    memcpy(other + 3, original, len);
    puts(other);
    sprintf(other, "---%s-", original);
    puts(other);

    memmove(original + 3, original, len);//move to back + 3
    memset(original, '-', 3);
    original[len+3] = '-';
    puts(original);
    return 0;
}