Проблема заключается в том, что код спокойно выполняется на онлайн gcc компиляторах и MSVS, а у меня - нет.
Ошибку видит в строках while (string[i] != '\0')
и ошибкуerror: invalid conversion from ‘char’ to ‘char*’ [-fpermissive]
в строке split_string[i] = '\0';
gcc version 7.4.0
#include <iostream>
#include <cstdint>
#include <cstring>
#define MAXLEN UINT8_MAX
using namespace std;
void print(char** string)
{
uint16_t i = 0;
while (string[i] != '\0')
{
cout << string[i] << " ";
i++;
}
}
char** reverse_string(char** split_string, char* string)
{
char temp;
uint16_t counter = 0;
char* token = strtok(string, " ");
while (token != NULL)
{
split_string[counter] = token;
counter++;
token = strtok(NULL, " ");
}
for (uint16_t x = 0; x < counter; x++)
{
char* tempstr = split_string[x];
uint16_t length = strlen(tempstr);
for (uint16_t i = 0, j = length - 1; i < j; i++, j--)
{
temp = split_string[x][i];
split_string[x][i] = split_string[x][j];
split_string[x][j] = temp;
}
}
return split_string;
}
int main()
{
char string[MAXLEN];
char* split_string[MAXLEN];
for (uint16_t i = 0; i < 100; i++)
{
split_string[i] = '\0';
}
cout << "Enter your words $ ";
cin.getline(string, MAXLEN);
char** reversed_string = reverse_string(split_string, string);
cout << "Reversed string: ";
print(reversed_string);
return 0;
}
Сравнение
string[i] != '\0'
это попытка сравнения значения указателя string[i]
со значением '\0'
. В С++98 '\0'
являлся допустимой формой null-pointer constant, то есть в C++98 такое сравнение интерпретировалось как
string[i] != 0
// или
string[i] != NULL
Это обычное сравнение с null-указателем. С таким же успехом вы могли написать
string[i] != false
и этот код являлся бы корректным в С++98.
Но начиная с C++11 уже не разрешается использовать '\0'
(или false
) в качестве null-pointer constant и этот код является ошибочным.
Все то же самое относится и к присваиванию split_string[i] = '\0'
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня возник вопрос, как я могу удалить блоки через datasetЧтобы каждый блок удалялся по отдельности по клику
Я использую шаблон сайта и хотел бы спросить где параметр находится который изменяет цвет ссылки при наводкеЯ уже пробовал менять параметры...
Есть div class="top", выбираю в нём строку пустой таблицы с помощью documentquerySelector(