Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Как работать с символами в const char*

Есть переменная которая объявлена как const char* str_value. Нужно получить самое короткое слово в ней. Например, при выводе в цикле printf("%s = ", str_value[i]); программа завершается, а при сравнении с " " ругается на char*. Как это нужно исправить? Завершение даже при printf("%s = ", str_value[1]);
При выводе printf("%d = ", str_value[1]); выходит число. Это код символа? Почему?


Ответ

Примерно так должна выглядеть ваша функция:
void findShortestWord(const char* in, char* out) { int len = strlen(in);
int beginWord = 0; int lengthWord = 0;
for (int i = 0; i < len; i++) { while ( (in[i] == ' ') && ( in[i] != '\0') ) i++; int begin = i; while ( (in[i] != ' ') && (in[i] != '\0') ) i++; int end = i; char tmp[256]; for(int j = begin, k=0; j < end; j++, k++) tmp[k] = in[j]; tmp[end - begin] = '\0';
int currentLen = end - begin; if (currentLen > lengthWord) { lengthWord = currentLen; beginWord = begin; } }
for (int i = beginWord, k = 0; i < beginWord + lengthWord; i++, k++) out[k] = in[i];
out[lengthWord] = '\0'; }

Комментариев нет:

Отправить комментарий