こんにちは、私は2つの文字列、 "今日は素敵な一日"と "ああ"があるとしましょう。私は最初の文字列に現れる2番目の文字列の文字を削除したいと思います。2つの文字列の間の要素を比較する
これは私の問題です:
char c[20];
char p[10];
int i,j;
int l1,l2;
printf("Enter a string \n");
scanf("%s",cd);
printf("Enter another string \n");
scanf("%s",car);
len1 = strlen(cd);
len2 = strlen(car);
for (i=0;i<len1;i++){
for (j=0;j<len2;j++){
if (cd[i]==car[j]){
cd[i]="";
}
}
}
私が欲しいものは "TDYがいいDYである" のようなものにする第一の文字列です。そこで、後で位置を変えるために要素が同じ位置を空にします。
どうやら "CD [i]を==車[j]は" Cで行うことができない、私は「 'CHAR' から 'のconstのchar *' から無効な変換を得た。
だから私はよほとんど立ち往生。私は助けに感謝します。
どのように 'CD []'と 'のchar []'宣言と初期化されますか? [mcve]を挙げてください。いずれにしても、2つの文字を比較して同等であることは問題ありません。問題のある次の行です。 –
1)本当の完全なエラーメッセージを投稿してください。 2)「cd」と「car」の宣言を掲示する。 – chux
警告をオンにします。 'const char *'を 'char'に代入するので、このコードはコンパイルすべきではありません。つまり、整数へのポインタです。' cd [i] = ""; '文字列リテラル' '' 'は'cd [i]'はおそらく 'char'です。あなたは 'char'の配列を持っています。ポインタを割り当てるだけでは意味のある結果を期待できません。 –