как читать строку - PullRequest
       10

как читать строку

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

Я новичок в программировании, и я все еще пытаюсь выяснить, как все работает, но я хочу написать строку, которая будет использоваться позже с добавлением символов, разделением текста, прописными / строчными буквами и т. Д.,Прямо сейчас я застрял в части для чтения строки, и это то, что у меня есть:

int A, str[100];    
printf("Write the text you want to use:\n");
char A;
scanf("%c", &A);

Когда я запускаю программу, она просто перепрыгивает через эту часть, потому что я просто написал char Aвместо стр?

Ответы [ 2 ]

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

Во-первых, вы объявили переменную «A» сначала как целое число, а затем как тип данных символа, это вызовет конфликт во время компиляции.Это можно исправить, используя разные имена переменных для обоих.

После этого ответом на ваши проблемы может быть -

  1. Строки хранятся в виде массива символов массивов в C,не только одним символом.Таким образом, вы должны объявить желаемую переменную для получения строки от пользователя как variable_name char [100], а затем использовать ее в fgets.

например:

printf("Enter the input text:\n");
char string[50];
fgets(str,100,stdin); // the max length of string that can be taken is depicted by 50.

printf("Input was: %s",string); // check your string variable contents, mind the %s used to mark string variables in C
Вы можете использовать строковую библиотеку из C, которая обладает множеством расширенных функций с простым и упрощенным синтаксисом.Перейдите по ссылке, вы найдете ее намного проще, чем что-либо еще
0 голосов
/ 11 декабря 2018

Есть несколько вещей не так.Прежде всего, вы объявляете два раза A с двумя различными типами - вы должны получить ошибку там, потому что вы можете объявить переменную только один раз.

Во-вторых, вы действительно должны хранить строку в str [100], так как это массив (который может хранить несколько переменных, по одной в каждом элементе, следовательно, 100 в вашем случае).Вам также следует использовать массивы char, а не int.A также бесполезен в вашем случае, потому что вы будете хранить строку в str.

Лучше использовать fgets для строк, потому что это более безопасно.Кроме того, scanf прекратит чтение после первого пробела в вашей строке, что в большинстве случаев не то, что вы хотите.

Это должно работать, я также добавил объяснения:

printf("Write the text you want to use:\n");
char str[100];
fgets(str,100,stdin); // 100 is the number of characters to store, stdin indicates that you are reading from the standard input, what the user is typing

printf("String: %s",str); // just for verification
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...