入力をチェックしていて、実際の単語「int」と比較する方法が必要です。
例:
char t[10] = "int";
if (t == 'int'){
printf("We have an integr");
}
これが可能かどうかはわかりませんが、まだ C のコツを学んでいます。助けてくれてありがとう!
strcmpを使用してテキストを比較できます。一致するとゼロが返されることに注意してください。
if (strcmp(t, "int") == 0) {
printf("We have an integer\n");
}
宣言char t[]="int";
には、 with を使用するための null ターミネータが含まれていますが、探している strcmp()
文字列バージョンを提供する際に不要なメモリを使用することはありません。int
注:各 char 要素を一度に 1 つずつチェックしない限り、文字列比較に演算子を使用して==
も機能しません。(下の2 番目の例を参照)
char t[] = {"int"};
if (strcmp(t, "int")==0){
printf("We have an integr");
}
使用==
:
if((t[0]=='i')&&(t[1]=='n')&&(t[2]=='t')&&(t[3]=='\0')){...
も動作します
"int"
文字列リテラルです。タイプやそのタイプの値とは関係ありません。元のコードでint
使用する場合、まったく同じ問題が存在します。"foobar"
文字列は文字列です。
'int'
(or ) の使用'foobar'
も間違っています。これらは [紛らわしい] 文字リテラル ( type char
) であり、文字列リテラル ( type ) ではないためchar*
です。コンパイラは 1 つまたは 2 つの警告を生成する必要があります。すべての警告を有効にして読み取ります。-コンパイルしたとしても。
==
最後に、C で文字列を正しく比較する方法については、このアプローチが機能しない理由を説明する他の回答を参照してください。