Для выполнения задания, которое я выполняю, мне нужно распечатать инициалы из строки в C (или массив символов). Для этого я знаю, что мне нужно найти, где находится ПРОБЕЛ, используя (int) name [i] == 32, чтобы определить, является ли текущий символ пространством. Моя единственная проблема заключается в том, что мне трудно понять, как я могу найти это пространство, а затем сохранить следующий символ в массиве символов. (например, пользователь вводит Майка Бэггинса, я должен распечатать MB). Я отправлю свой код ниже, чтобы показать вам, как далеко я получил. Пожалуйста, помогите, но, пожалуйста, не дайте мне полного решения. Спасибо!Попытка захватить символ после пробела в C
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
string name = get_string(); // gets the user's input
char firstI = name[0]; // stores the first character from the user's input
int len = strlen(name);
if((int)firstI >= 97 && (int)firstI <= 122) // checks if the character is lowercase
{
firstI -= 32; // makes the value uppercase
}
for(int i = 0; i < len; i++)
{
if((int)name[i] == 32) // checks if the character is SPACE
{
printf("I found a space!\n"); // prints out "I found a space"
}
}
printf("%c\n", firstI); // prints out the first initial
}
Почему вы используете 'name [i]'? Используйте 'name [i] == '''! Также 'for (int i = 0, len = strlen (name); i
Есть удобные и портативные функции 'islower' и' toupper' ... И вам действительно не нужен первый. –
Что значит «означает, что вы не знаете, как представлены строки». Легко использовать strlen(), чтобы получить всю длину строки для анализа, поэтому я просто использовал strlen(). – Nik