Как записать слово в переменную в c
Функция sscanf считывает данные из строки (массива символов) в переменные. Функция имеет следующий синтаксис
Первый параметр функции представляет строку, из которой считываются данные. Второй параметр представляет формат считывания. В качестве последующих параметров указываются переменные, в которые идет считывание.
Считаем данные из строки
В данном случае строка, из которой считываются данные:
Разделителем между значениями является пробел, либо последовательность пробелов, табуляция и перевод строки.
Эту строку передаем в функцию sscanf первым аргументом и считываем ее значения в переменные c , n , d :
А второй аргумент — формат считывания определяет, как данные из строки будут сопоставляться с переменными:
Поскольку значения в строке buff разделены пробелами, то и в строки форматирования спецификаторы разделены пробелами. Первый спецификатор %c позволяет считать первый символ в переменную типа char c .
Второй спецификатор — %d обеспечивает считывание целого числа в переменную n .
И третий спецификатор %lf считывает данные в переменную типа double — d
То есть в итоге консольный вывод был бы следующим:
Обратите внимание, что формат считывания соответствует строке, из которой считываются данные. Если бы в строке данные были бы разделены запятыми, то спецификаторы в формате считывания также были бы разделены запятыми:
Еще один пример. Пусть в строке содержатся данные пользователя, как имя, возраст, зарплата. Считаем эти данные в переменные:
Причем строка форматирования может быть более сложной. Например:
В данном случае исходная строка представляет текст «Name is Tom and age is 38» . И на эту строку накладывается строка форматирования «Name is %s and age is %d» . Соответственно здесь спецификатор %s будет представлять строку «Tom», а спецификатор %d — число 38.
Считывание с консоли
Комбинируя это функцию с fgets() , можно считывать данные с консоли:
Пример консольного ввода:
Данный способ имеет премущества по сравнению с чтением через scanf , поскольку при считывании функция scanf удаляет из входного буфера только значения, которые соответствуют спецификаторам. Поэтому, если ввод через scanf не соответствует чему-либо, оставшиеся в буфере символы будут считываться при следующем вызове scanf.
sprintf
Функция sprintf производит обратное действие — записывает данные в строку:
В качестве первого параметра функция принимает указатель на буфер, в который идет запись. Второй параметр представляет строку форматирования. Кроме того, в качестве дополнеительных аргументов в функцию можно передавать дополнительные значения для спецификаторов из строки форматирования. Результатом функции является длина количество записанный символов плюс нулевой символ.
В данном случае в переменную text записывается строка «Name: %s Age: %d\n» , в которую вместо спецификаторов подставляются значения переменных name и age .
Как в переменную записать слово,не используя массив?
Допустим , идет поиск наибольшего числа, и имя человека с наибольшим числом очков . Его имя должно записаться в, скажем ,тип char , string . Возможна ли такая запись без использования массива?
![]()
Берете одну переменную для имени, одну — для очков. Читаете первого в эти переменные.
Далее циклом читаете остальных — в еще одну переменную имени и одну очков. Если у нового очки больше — записываете в первые переменные имя и очки, если нет — игнорируете.
Как переменной (x) присвоить текст/слово и т.д
Мне нужно, что бы переменная Х была равно моему тексте.
И при выводе, когда я вставлю Х что бы он вывел текст который я ввел..
P.S. x=текст как это сделать?
Как присвоить переменной текст из файла?
Нужно чтобы программа брала строку из файла и проверяла является ли строка перевертышем. Не могу.
Как текст из заданного файла присвоить переменной типа std::string?
Здравствуйте, у меня есть файл с текстом, нужно этот текст присвоить переменной string, как это.
Как к переменной присвоить текст, с пробелами и символами, например ‘-‘
Здравствуйте, очень долго бьюсь над этой проблемой. Нужно сделать так, чтобы когда человек вводил.
Как присвоить текст переменной?
Как присвоить текст переменной? Числовые значения присваиваются через int, а как присвоить текст?
Сообщение от Skampf
Сообщение от IrineK
Пробовал. Но пишет стринг не определен.
Прочитал, что нужно в функцию, что то дописать. А что? Если она такая int _tmain(int argc, _TCHAR* argv[])
Сообщение от Skampf
Сообщение от Skampf
Сообщение от IrineK
Теперь не каких ошибок.
Но выводиться смайлик
Помогите еще пожалуйста
Если выводить через printf какое должно быть значение ( %D-%f и т.д)??
Сообщение от _Ivana
Сообщение от alsav22
Сообщение от alsav22
| Меню пользователя @ _Ivana |
| Читать блог |
Сообщение от Skampf
Сообщение от Skampf
Сообщение от _Ivana
Что то не чего не получается.
присваиваю переменной x слово. Выводится 0
Сообщение от _Ivana
Сообщение от _Ivana
Добавлено через 1 минуту
Сообщение от Skampf
Сообщение от alsav22
Сообщение от Skampf
Сообщение от IrineK
За иф спасибо.. тупанул
Я вынес стринг за пределы свитч, и он заработал.
Но когда вставляешь его в case то он не выводит нечего.
И если я прописываю case2 то пишет ошибку. Буду разбираться
Спасибо!
Сообщение было отмечено Skampf как решение
Решение
Присвоить переменной слово из строки
Добрый вечер! Есть код, который реализует сохранение в файл. Код Properties.Settings.Default.Site.
PHP: присвоить текст переменной
Всем привет! Только начал изучать php и появился вопрос. Есть необходимость присвоить введенный.
Присвоить переменной выделенный текст в RichTextBox
Здравствуйте, у меня есть вопросик по реализации некоторой вещи на c#. Я не опытный в.
Присвоить переменной выделенный текст компонента
Нужно, по нажатию кнопки например, присваивать переменной значение String выделенного текста в.
Если слово in входит в строку то переменной t присвоить значение true
Если в строку длиной 80 символов входит слово in то логический переменной t присвоить значение true
Функции обработки строк в Cи
В программе строки могут определяться следующим образом:
- как строковые константы;
- как массивы символов;
- через указатель на символьный тип;
- как массивы строк.
Кроме того, должно быть предусмотрено выделение памяти для хранения строки.
Любая последовательность символов, заключенная в двойные кавычки «» , рассматривается как строковая константа .
Для корректного вывода любая строка должна заканчиваться нуль-символом '\0' , целочисленное значение которого равно 0. При объявлении строковой константы нуль-символ добавляется к ней автоматически. Так, последовательность символов, представляющая собой строковую константу, будет размещена в оперативной памяти компьютера, включая нулевой байт.
Под хранение строки выделяются последовательно идущие ячейки оперативной памяти. Таким образом, строка представляет собой массив символов. Для хранения кода каждого символа строки отводится 1 байт.
Для помещения в строковую константу некоторых служебных символов используются символьные комбинации. Так, если необходимо включить в строку символ двойной кавычки, ему должен предшествовать символ «обратный слеш»: ‘\»‘ .
Строковые константы размещаются в статической памяти. Начальный адрес последовательности символов в двойных кавычках трактуется как адрес строки. Строковые константы часто используются для осуществления диалога с пользователем в таких функциях, как printf() .
При определении массива символов необходимо сообщить компилятору требуемый размер памяти.
Компилятор также может самостоятельно определить размер массива символов, если инициализация массива задана при объявлении строковой константой:
В этом случае имена m2 и m3 являются указателями на первые элементы массивов:
- m2 эквивалентно &m2[0]
- m2[0] эквивалентно ‘Г’
- m2[1] эквивалентно ‘o’
- m3 эквивалентно &m3[0]
- m3[2] эквивалентно ‘x’
При объявлении массива символов и инициализации его строковой константой можно явно указать размер массива, но указанный размер массива должен быть больше, чем размер инициализирующей строковой константы:
Для задания строки можно использовать указатель на символьный тип .
В этом случае объявление массива переменной m4 может быть присвоен адрес массива:
Здесь m3 является константой-указателем. Нельзя изменить m3 , так как это означало бы изменение положения (адреса) массива в памяти, в отличие от m4 .
Для указателя можно использовать операцию увеличения (перемещения на следующий символ):
Массивы символьных строк
Иногда в программах возникает необходимость описание массива символьных строк . В этом случае можно использовать индекс строки для доступа к нескольким разным строкам.
В этом случае poet является массивом, состоящим из четырех указателей на символьные строки. Каждая строка символов представляет собой символьный массив, поэтому имеется четыре указателя на массивы. Указатель poet[0] ссылается на первую строку:
*poet[0] эквивалентно 'П',
*poet[l] эквивалентно '-'.
Инициализация выполняется по правилам, определенным для массивов.
Тексты в кавычках эквивалентны инициализации каждой строки в массиве. Запятая разделяет соседние
последовательности.
Кроме того, можно явно задавать размер строк символов, используя описание, подобное такому:
Разница заключается в том, что такая форма задает «прямоугольный» массив, в котором все строки имеют одинаковую длину.
Свободный массив
Операции со строками
Большинство операций языка Си, имеющих дело со строками, работает с указателями. Для размещения в оперативной памяти строки символов необходимо:
- выделить блок оперативной памяти под массив;
- проинициализировать строку.
Для выделения памяти под хранение строки могут использоваться функции динамического выделения памяти. При этом необходимо учитывать требуемый размер строки:
Для ввода строки использована функция scanf() , причем введенная строка не может превышать 9 символов. Последний символ будет содержать '\0' .
Функции ввода строк
Для ввода строки может использоваться функция scanf() . Однако функция scanf() предназначена скорее для получения слова, а не строки. Если применять формат "%s" для ввода, строка вводится до (но не включая) следующего пустого символа, которым может быть пробел, табуляция или перевод строки.
Для ввода строки, включая пробелы, используется функция
В качестве аргумента функции передается указатель на строку, в которую осуществляется ввод. Функция просит пользователя ввести строку, которую она помещает в массив, пока пользователь не нажмет Enter.
Функции вывода строк
Для вывода строк можно воспользоваться рассмотренной ранее функцией
или в сокращенном формате
Для вывода строк также может использоваться функция
которая печатает строку s и переводит курсор на новую строку (в отличие от printf() ). Функция puts() также может использоваться для вывода строковых констант, заключенных в кавычки.
Функция ввода символов
Для ввода символов может использоваться функция
которая возвращает значение символа, введенного с клавиатуры. Указанная функция использовалась в рассмотренных ранее примерах для задержки окна консоли после выполнения программы до нажатия клавиши.
Функция вывода символов
Для вывода символов может использоваться функция
которая возвращает значение выводимого символа и выводит на экран символ, переданный в качестве аргумента.
Пример Посчитать количество введенных символов во введенной строке.
Результат выполнения 