#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main(){
const char* a = 0;
const char* b = "Georgi";
printf("Hello, write your name!\n");
scanf_s("%s", &a);
if (a = b){
printf("\nHi,",b ,", its nice to see you my friend.");
}
else{
printf("\nHello, its nice to meet you. My name is Supa-Dupa Computer!");
}
getchar();
return 0;
}
Так что я пытаюсь сделать программу, возвращающую смысл после вставки определенного имени. Впервые это сработало, но когда я ввел «Георги», он напечатал мне «чужой» смысл. Теперь, когда я ввожу даже только знак, программа просто выходит. Любые предложения, в которых я ошибаюсь?Не могу вернуть право, если заявление
У вас есть неопределенное поведение ('a' неинициализируется, когда вы его читаете), и вы сравниваете указатели (вместо этого используйте вместо него' strcmp'.) – juanchopanza
назначение против раунда сравнения 810. –
Предполагается, что это C или C++ ? На любом языке вам нужно '==' not '=' для сравнения; но даже если вы исправите это, вы не сможете использовать это, чтобы сравнить неприятные строки в стиле C. Либо используйте библиотеку C++ 'std :: string', либо библиотеку C' strcmp' (In C, вам также необходимо предоставить массив для 'a', чтобы указать, и как-то избежать переполнения, если вход слишком длинный.) –