C: Возможно ли объединить / сгруппировать определенные элементы из массива char, чтобы он представлял собой строковый массив? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть массив символов в C:

Array = {'7', '.', '8', '*', '3', '-', '4', '.', '5', '6', '+', '1', '0'}

Выше приведено математическое уравнение 7.8 * 3 - 4.56 + 1, где я сохранил каждый символ как отдельный элемент в массиве.

Iпытаюсь изменить массив так, чтобы десятичные числа были одним элементом.Итак, массив должен выглядеть следующим образом:

Array = {'7.8', '*', '3', '-', '4.56', '+', '1'}

Я был бы признателен, если бы кто-нибудь показал мне, как это сделать, поскольку я новичок.

IЯ новичок в C, поэтому я прошу прощения, если вопрос не имеет полного смысла.Спасибо за любую помощь заранее!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Если я вас правильно понимаю, вы просто хотите:

const char *array[] = { "7.8", "*", "3", "-", "4.56", "+", "1"};
// well, short usage example:
for (size_t i = 0; i < sizeof(array)/sizeof(*array); ++i) { 
     printf("array[%zu] = %s\n", i, array[i]);
}

array - это массив указателей на постоянные символы.Каждый элемент этого массива является строковым литералом.Строковые литералы неизменны в C, поэтому они должны быть указателями на const символов (вы можете удалить const, это только для компилятора. Изменение памяти строкового литерала - неопределенное поведение).

0 голосов
/ 07 декабря 2018

C не поддерживает строки.Вы можете использовать массивы char для их реализации, например:

#define MAX_SIZE 50
char expression[MAX_SIZE];
scanf("%s", expression); // input the expression from the user

Основная проблема в том, что вы не можете написать «7.5» на C, потому что char ограничен 1 буквой.Обратите внимание на определение, которое я использовал для ограничения длины массива, вы должны объявить массивы с постоянным номером.

Если вы хотите создать такой массив:

Array = {'7.8', '*', '3', '-', '4.56', '+', '1'}

Этот массив будетбыть массивом char [] с типом char [] [], массивом «строк».

дайте мне знать, если это вам помогло:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...