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

236
21 ноября 2017, 23:48

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

При выводе printf("%d = ", str_value[1]); выходит число. Это код символа? Почему?

Answer 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';
}
READ ALSO
Работа с файлами и строками C++

Работа с файлами и строками C++

Дано: файл с данными, например:

284
Как убрать уголок у textarea не используя resize: none?

Как убрать уголок у textarea не используя resize: none?

Нужно убрать уголок у textarea так, чтобы осталось свойство resize (оно нужно для выполнения скрипта)

1231