Я создаю функцию, которая создает имя пользователя.У пользователя спрашивают имя, затем фамилию.Фамилия соединяется с первой буквой имени.Кроме того, любая заглавная буква должна быть преобразована в строчные буквы.Таким образом, ввод 'John DoE' должен быть равен 'jdoe'.
Другая функция подсчитывает количество строчных букв в строке "У ЭТОГО ПРЕДЛОЖЕНИЯ НЕКОТОРЫЕ НИЗКИЕ СЛУЧАЙНЫЕ ХАРАКТЕРЫ".Затем строчные буквы преобразуются в прописные, и строка печатается.
Первая функция не преобразует прописные буквы в строчные.Вторая функция даже не распознает значение ASCII какого-либо символа.
Я пытался использовать указатели для двух функций, но не было никаких изменений в выводе.
void createUsername()
{
int j = 1;
char firstName[15], lastName[15], userName[20];
printf("Enter your first name : ");
fgets(firstName, 15, stdin);
firstName[strlen(firstName) - 1] = '\0';
printf("Enter your last name : ");
fgets(lastName, 15, stdin);
lastName[strlen(lastName) - 1] = '\0';
userName[0] = tolower(firstName[0]);
for (int i = 0, j; lastName[i] != '\0'; i++, j++)
userName[j] = tolower(lastName[i]);
userName[j+1] = '\0';
printf("User name : %s", userName);
}
void lowerToUpperCase()
{
char sentence[] = "THiS SentENCE HAS SOMe LoWEr CASE ChARAcTERs";
int lowerCases = 0;
for (int i = 0; sentence[i] != '\0'; i++)
{
if ((sentence[i] >= 97) && (sentence[i] <= 122))
{
lowerCases++;
sentence[i] = toupper(sentence[i]);
}
}
printf("Number of lower case characters= %d \n", lowerCases);
printf("Upper case sentence : %s \n", sentence);
}
Ожидаемый вывод Джо Смита должен быть jsmith.Количество строчных букв должно быть 10, а предложение должно печатать все заглавные буквы.
Фактический вывод дает JSMITH, количество строчных букв равно 0, а предложение печатает оригинал.