Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,233
Записей в блоге: 2
#1

Проверка содержимого char[] - C++

30.08.2013, 12:15. Просмотров 683. Ответов 13
Метки нет (Все метки)

Добрый день.
Написал чат по сети. В переменную char buf[1024] записываются приходящие сообщения следующим образом
C++
1
recv(client_sockfd, buf, 1024, 0);
затем я могу выводить их на экран
C++
1
printf("%s\n", buf);
.
Возникла необходимость сделать условие на содержимое переменной buf. Т.е. нечто такое
C++
1
 if (buf == 'f') printf("Hello\n");
подскажите пожалуйста, как проверить переменную buf, пришла ли только одна буква f ?
Спасибо за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2013, 12:15     Проверка содержимого char[]
Посмотрите здесь:

Проверка содержимого массива - C++
Допустим если есть массив char array = { '_' '_' '_' '_' '_' '_' '_' '_' '_' '_' '_'} // и тд.. Как проверить если 1==2==3 элемент...

Проверка содержимого string/TextBox - C++
Доброго времени суток! Имеется строка TextBox, которую я перевожу в string, дабы затем поместить в переменную типа int, однако в случае...

Проверка содержимого текстового файла - C++
Помоги проверить содержимое файла на числа !Сделал вот как я думаюbool lch(string FN) { ifstream F1(FN, ios::in); char ch; ...

Проверка содержимого текстового файла - C++
Помогите пожалуйста сделать проверку содержимого текстового файла. Если там есть хотя бы одна не цифра -выдать ошибку , если все цифры...

Проверка ошибок в кодах. (Строки и char) - C++
Добрый день! Уж не знаю насколько я правильно поняла это задание но вот код и прошу помощи в проверке или указания алгоритма. Или указания...

Проверка конца строки и переменной char. - C++
Не когда не приходилась работать со строами. Прошу помощи как определить конец строки?

Проверка массива char на равенство с таким же массивом - C++
#include <iostream> using namespace std; int main() { char chArr={"4 8"}; char chCode={"4 8"}; if (chCode==chArr)...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,365
30.08.2013, 12:17     Проверка содержимого char[] #2
C++
1
if (buf[0] == 'f') printf("Hello\n");
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
30.08.2013, 12:30     Проверка содержимого char[] #3
C++
1
2
3
4
5
6
7
8
9
for(int i = 0; i < bufLen; i++)
{
  if(buf[i]=='f')
  {
      printf("hi,jack\n");
      break;
  }
 
}
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,233
Записей в блоге: 2
30.08.2013, 12:38  [ТС]     Проверка содержимого char[] #4
проблема решена
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,365
30.08.2013, 12:41     Проверка содержимого char[] #5
Костяныч, проблема-то решена.... вот только правильно ли решена?

У тебя какой транспортный протокол используется для обмена сообщениями? Подозреваю, что TCP, так?
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
30.08.2013, 12:58     Проверка содержимого char[] #6
Разве сначала не лучше получать размер строки(buf`), и по этому размеру уже смотреть, какая длина? или я не правильно понял вопрос...или Вам просто подсчет элементов нужно сделать, встречается ли он еще?
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,233
Записей в блоге: 2
30.08.2013, 13:04  [ТС]     Проверка содержимого char[] #7
TCP
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
30.08.2013, 13:05     Проверка содержимого char[] #8
не лучше. в буфере может быть две строки. или три строки
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,233
Записей в блоге: 2
30.08.2013, 13:06  [ТС]     Проверка содержимого char[] #9
Цитата Сообщение от AlexCore Посмотреть сообщение
Разве сначала не лучше получать размер строки(buf`), и по этому размеру уже смотреть, какая длина? или я не правильно понял вопрос...или Вам просто подсчет элементов нужно сделать, встречается ли он еще?
Если пришла просто буква f, то выполнить условие, иначе ('ff' или 'fg...' или 'dfsd f df' или 'sfg' не важно) ничего
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
30.08.2013, 13:29     Проверка содержимого char[] #10
Цитата Сообщение от Martovskij Посмотреть сообщение
не лучше. в буфере может быть две строки. или три строки
Переменная char buf[1024], не понимаю, что значит две или три строчки, перед каждой посылкой (перед каждой строчкой) мы будем указывать ее размер...извините если Вам не понял(

Добавлено через 7 минут
Цитата Сообщение от Костяныч Посмотреть сообщение
Если пришла просто буква f, то выполнить условие, иначе ('ff' или 'fg...' или 'dfsd f df' или 'sfg' не важно) ничего
Ну тогда как то так, если не так, надеюсь, меня поправят.

C++
1
2
3
4
5
6
7
8
9
10
11
12
int count = 0;
if(buf[0] == 'f'){
    ++count;
 
    for(size_t i = 1;i < size && count < 2; ++i)
        if(buf[i] == 'f')
            ++count;
 
    if(count == 1){
        //действие
    }
}
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,365
30.08.2013, 13:35     Проверка содержимого char[] #11
О-ля-ля! Ну, раз в ходу TCP......
Костяныч, а учел ли ты, что TCP ничего не знает ни о "сообщениях", ни о "строках"? Грубо говоря, если на передающем конце в TCP сокет запихивать строки:
В лесу родилась елочка,
В лесу она росла,
Зимой и летом стройная
Зеленая была.

то на приемном конце ты лехко можешь извлечь из сокета куски:
В
ле
су родилась елочка,В лесу о
на росла,З
имой и летом стройнаяЗеле
ная б
ы
л
а.

?
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
30.08.2013, 13:42     Проверка содержимого char[] #12
Цитата Сообщение от CheshireCat Посмотреть сообщение
О-ля-ля! Ну, раз в ходу TCP......
Костяныч, а учел ли ты, что TCP ничего не знает ни о "сообщениях", ни о "строках"? Грубо говоря, если на передающем конце в TCP сокет запихивать строки:
В лесу родилась елочка,
В лесу она росла,
Зимой и летом стройная
Зеленая была.

то на приемном конце ты лехко можешь извлечь из сокета куски:
В
ле
су родилась елочка,В лесу о
на росла,З
имой и летом стройнаяЗеле
ная б
ы
л
а.

?
AlexCore, поняли?
Еще от себя добавлю, что если ТС не встречал такого, то это не значит, что такой проблемы не существует.
Причины могут быть разные, например буфер передачи больше, чем TCP MTU.
Эх... как же хорошо на java или c#, натравил BufferedReader и BufferedWriter на сокет и радуешься
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
30.08.2013, 14:42     Проверка содержимого char[] #13
Цитата Сообщение от Martovskij Посмотреть сообщение
AlexCore, поняли?
Теперь понял, спасибо. Оказывается они могут слипнуться или наоборот...ну тогда нужно к какому то формату приводить, упаковывать. Что-то типа pickle на Python`e, на плюсах ничего такого не знаю(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 16:06     Проверка содержимого char[]
Еще ссылки по теме:

Невозможно преобразовать char* в char - C++
Как исправить ошибку?

Char *(UTF-8) -> char *(ANSI) - C++
Есть строка в кодировке UTF-8(если не ошибаюсь) типа char * Вот так ее я вижу в MSVC++10 - комментарии(оригинал - комментарии)...

В чем отличие char* s от char *s - C++
В чем отличие char* str; от char *str; ?

Разница между new char[] и new char[]() - C++
Доброго времени суток. Подскажите пожалуйста разницу, между следующим кодом: char* ch = new char; и char* ch = new...

Аргумент типа char** не совместим с параметром типа const char* - C++
Программа должна позволять заносить в структуру данные и выводить на экран информацию о поездах, следующих до определенной станции: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,233
Записей в блоге: 2
30.08.2013, 16:06  [ТС]     Проверка содержимого char[] #14
Мужики, сервер, написанный на С++ (стоит на linux) принимает сообщения, мне нудно проверять всего одну букву, и ничего более. Клиентская часть написана на C#. Клиент может посылать только f, b,r, l и s. Думаю путаницы в этом не возникнет если читать так : buf[0];
Потом буду слова проверять, но это потом...
Yandex
Объявления
30.08.2013, 16:06     Проверка содержимого char[]
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru