Моя программа получает входные данные от порта, а затем я отправляю эту строку для проверки на несколько строк. Сначала я попытался сравнить java-стиль, используя только «myString», но при сравнении я получил 13 (тринадцать). Я думал, что это потому, что я должен использовать указатель на char, но я все равно получаю 13. Затем я увидел, что буфер был передан с новой строкой, поэтому я добавил \ n, но я получил 3 (Три). Отсюда я не знаю, как уменьшить его до 0. Это должно быть то, как я передаю строку.Неверное сравнение строки и символа *
Получение строки:
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("String at start: %s",buffer);
testingMethod(buffer);
Метод тестирования:
void testingMethod(char *string) {
char *button = "mystring";
printf("myString: %s-", string);
printf("strcmp: %i", strcmp(myString,button));
...
}
Выход:
String at start: mystring
string: mystring
-strcmp: 13 //NOTE the - on the nextline.
Поведение все тот же, выход 13 + новая строка перед -. Я попытался изменить \ r для \ n, но это также приведет к сбою программы. То же самое с ответом Даниэля Фишера. – Juan
Плохо, проблема была снова в моей печати. – Juan