【问题标题】:How to make 2D array from 1D array of char string in C如何从C中的char字符串的一维数组制作二维数组
【发布时间】:2021-03-11 20:16:26
【问题描述】:

这是代码,我在创建字符串是整数的类似函数后得到了,但是当我用 char 更改 int 时出现问题

int main()

{ 字符 A[ ] = "RRTTYYHH";

int len = 8;

char B[2][4];   

int i;

int j;

int k = 0;

int row = 2;

int column = 4;

for (i = 0; A[i] < row; i++)

{
    printf("\n"); 
    
    if(k == len) 
   
     break; 
    
    for (j = 0; A[j] < column; j++)
   
    {
        B[i][j] = A[k]; 
        
        printf("%s\t", B[i][j]);

        k++; 
    
    }

 }

return 0;

}

【问题讨论】:

    标签: arrays c string 2d


    【解决方案1】:

    在 for 循环中,将 A[i] 更改为 i 并将 A[j] 更改为 j 以正确遍历行和列。

    在 printf 中,您可以使用 %c 代替 %s,因为 2D 版本中的字符不会以 null 结尾(如字符串或 %s 期望的那样)。

    例子:

    int main()
    {
        char A[] = "RRTTYYHH";
        
        int rows = 2, columns = 4;
    
        char B[rows][columns];
    
        int k = 0;
        
        for(int i = 0; i < rows; i++)
        {
            printf("\n");
            
            for(int j = 0; j < columns; j++)
            {
                B[i][j] = A[k];
                
                printf("%c\t", B[i][j]);
        
                k++;
            }
         }
    
        return 0;
    }
    

    【讨论】:

      【解决方案2】:

      在 printf 中你可以使用 %c 代替 %s

      int main()
      {
          char A[] = "RRTTYYHH";
          int len = 8;
          char B[2][4];
          int k = 0,i=0,j=0;
          int rows = 2,cols = 4;
          while(i<rows)
          {printf("\n");
             j=0;
             while(j<cols)
             {
                  B[i][j] = A[k];
                  printf("%c\t", B[i][j]);
                  j++;
                  k++;
             }
              i++;
           }
          return 0;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        • 2019-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多