このコード行に関して質問があります。
scanf("%s %s %s", &op, &s1, &s2);
opPtr = &op;
s1Ptr = &s1;
s2Ptr = &s2;
if (strcmp(opPtr, "^") == 0 && (strcmp(s1Ptr, "A") == 0) && (strcmp(s2Ptr, "") == 0))
matrix_transpose(matA, ArowsPtr, AcolsPtr);
私scanf(op, s1, s2)
の目的は、ユーザーに 2 つの行列 (s1 と s2) に対する操作と、それらに対する操作 (op) を入力してもらうことです。これには op = "*" || が含まれます。"+" || "^" ここで "^" は転置です。
転置の場合、s1 のみが必要です。したがって、ユーザーは「^ A[ENTER]」と入力し、matA、ArowsPtr、および AcolsPtr が matrix_transpose 関数に呼び出されます。
私の問題は、入力された操作が '^' のときに s2Ptr を無視する方法がわからないことです。s2Ptr を空の文字列に設定し、'\n' を strcmp(s1Ptr, "A\n") == 0 に追加しようとしましたが、s2 を無視するのには役立ちません。
ある種の while(EOF) を作成する必要があると思います。