2014-11-22 48 views
1

我有一个数组中有一些值,例如。 ABCDEF和我需要做的是当我想打印出例如前4个字符ABCD,我想要打印3个字符在第一个字符前面和3个字符在最后一个字符后面:---ABCDEF-正如你所看到的,-是用char替代,因为前面没有任何内容,那就是我想要做的。那些3 ---在-3 -2 -1的位置上,但是当数组从0开始时,我该怎么做?或者还有其他更简单的方法来做到这一点吗?并且在将要打印的4个字符之后加上字符。填写“负”位置上的数组值

希望我解释得够好。

这里是我现在,相同的描述:

printf("%d %c%c%c%s%c%c%c\n", h+1, pole[h-3], pole[h-2], pole[h-1], slovo, pole[h+dlzka], pole[h+dlzka+1], pole[h+dlzka+2]); 
+1

我没有看到一个理由投票下来,我添加了一个代码是相同像在描述中,林要求一个想法我应该怎么做,而不是确切的代码来使用。谢谢。 – febeks 2014-11-22 15:18:24

+0

定义一个大小为[12]的新数组,然后循环并检查索引并填充i和i + 2?什么是困难? – SMA 2014-11-22 15:28:16

+0

你如何确定你应该处于负面指数? – 2014-11-22 19:42:42

回答

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; 
} 
+0

即使原始数组发生变化,每次都会放入'-'吗?因为我看到你有'---%s-'这就是为什么我问。原始数组也可以是ABCDEF,然后输出应该是“--- ABCDEF”..和其他许多组合.. – febeks 2014-11-22 15:49:12

+0

@febeks上半部分,我被存储在另一个数组中。第二部分改变原来的。两者都只是一个示例代码。 – BLUEPIXY 2014-11-22 15:53:57