Есть переменная которая объявлена как 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';
}
Комментариев нет:
Отправить комментарий