Saya mencoba mendapatkan program untuk membiarkan pengguna memasukkan kata atau karakter, menyimpannya, dan mencetaknya hingga pengguna mengetiknya lagi, keluar dari program. Kode saya terlihat seperti ini:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
Masalahnya adalah bahwa saya terus mendapatkan pencetakan dari string input, bahkan ketika input oleh pengguna (centang) cocok dengan yang asli (input). Apakah saya salah membandingkan keduanya?
strcmp()
mengembalikan nol ketika inputnya sama menjelaskan bagaimana membandingkan string untuk kesetaraan, ketidaksetaraan, kurang dari, lebih besar dari, lebih kecil dari atau sama, dan lebih besar dari atau sama. Tidak semua perbandingan string adalah untuk kesetaraan. Perbandingan case sensitif berbeda lagi; perbandingan khusus lainnya (urutan kamus, misalnya) memerlukan pembanding yang lebih khusus, dan ada regex untuk perbandingan yang lebih kompleks.
gets()
adalah no-go. Itu juga telah dihapus dari standar sejak C11 -> Silakan baca Mengapa fungsi mendapat begitu berbahaya sehingga tidak boleh digunakan?
gets( )
telah dihapus dari standar. Gunakanfgets( )
sebagai gantinya.