-2

入力をチェックしていて、実際の単語「int」と比較する方法が必要です。

例:

char t[10] = "int";
if (t == 'int'){
   printf("We have an integr");
}

これが可能かどうかはわかりませんが、まだ C のコツを学んでいます。助けてくれてありがとう!

4

3 に答える 3

5

strcmpを使用してテキストを比較できます。一致するとゼロが返されることに注意してください。

if (strcmp(t, "int") == 0) {
     printf("We have an integer\n");
}
于 2013-11-01T18:49:21.737 に答える
0

宣言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')){...  

も動作します

于 2013-11-01T18:50:39.130 に答える
0

"int"文字列リテラルです。タイプやそのタイプの値とは関係ありません。元のコードでint使用する場合、まったく同じ問題が存在します。"foobar"文字列は文字列です。

'int'(or ) の使用'foobar'も間違っています。これらは [紛らわしい] 文字リテラル ( type char) であり、文字列リテラル ( type ) ではないためchar*です。コンパイラは 1 つまたは 2 つの警告を生成する必要があります。すべての警告を有効にして読み取ります。-コンパイルしたとしても。

==最後に、C で文字列を正しく比較する方法については、このアプローチが機能しない理由を説明する他の回答を参照してください。

于 2013-11-01T18:56:59.667 に答える