簡體   English   中英

如何在C中將char **轉換為char *?

[英]How do I cast from char** to char* in C?

我有這個問題:我有一個存儲不同字符的矩陣。 現在,我必須將這些字符與另一個字符進行比較,但是在編譯時,它說strcmp接收char *,而我有char **。 那么,我該如何投放呢? 這是我的代碼:

對於矩陣:

for (i = 0; i < x; i++){
        for (j = 0; j < y; j++){
            if (!fscanf(fol, "%c", &mat[i][j])){
                break;}
            //printf("%c", mat[i][j]);
            }
        }

我遇到的問題是:

    for (x = 0; x < largo; x++){
        for (y = 0; y < ancho; y++){
            char *charcha;
            strcpy (charcha, mat[x][y]);

            //char *charcha = "%c", mat[x][y];
            int algo = strcmp(charcha, "0");
            if (algo == 0){
                printf (" ");
                }
            else{
            printf("%c", mat[x][y]);}
            }
            }

    printf ("\n");  

我嘗試使用strcpy,但也失敗了:C

謝謝

如果要比較字符串,請使用:

for (x = 0; x < largo; x++)
{
   if ( strcmp(mat[x], "0") == 0 )
   {
      // Do whatever.
   }
   else
   {
      // Do whatever.
   }
}

如果要比較字符,請使用:

for (x = 0; x < largo; x++)
{
   for (y = 0; y < ancho; y++)
   {
      if (mat[x][y] == '0' )
      {
         // Do whatever.
      }
      else
      {
         // Do whatever.
      }
   }
}

要從char **轉換為char *,請使用*

例:

char ** twoLevel = ..
char * oneLevel = *twoLevel;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM