多个字符串操作不起作用

时间:2014-01-13 17:42:57

标签: c string

我试图在双数组中定义多个字符串 values [0] [] =“something”,值[1] [] =“其他东西...... 然后我想填充每个字符串的长度,使它们是128个字符。 最后,我想将128个字符串拆分为4个字符串,然后将它们写成4乘4(因此写入32个字符串)。我知道我有几个问题,但有人可以协助吗?

我发现了问题。这是我的代码,它做我想要的。感谢所有的建议。

for(k=0;k<inputs;k++){//do for all inputs
   flag = 0;
   int len = strlen(values[k]);
   int padded_len = 127;
   int i;
   //pad inputs
   for(i = 0; i < padded_len-len; i++){
               strcat(values[k], "0");
   }

   for (off = 0; off < 128; off += 4){
        strncpy(temp[k], values[k]+off, 4);
        temp[k] = '\0';

        temp_int = *((uint32 *) &values[k][off]);

        if(flag==0){
        //write to HW regy
        flag=1;
        }
        else{
        //write to HW regx
        flag=0;
        }
    }

1 个答案:

答案 0 :(得分:0)

当你引用我们的values []数组时,看起来你的填充部分有错误,所以它应该是:

   //pad inputs
   for(i = 0; i < padded_len-len; i++){
               strcat(values[k], "0");
   }

编辑:

此外,您需要增加字符串数组的大小以包含空终止符的空间:

... char values[3][129]...