Подсчитать, сколько букв и цифр в последнем слове - C (СИ)
Формулировка задачи:
Заданно предложение, слова в нем разделены пробелом, подсчитать, сколько букв и цифр в последнем слове. Помогите написать программу пожалуйста:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <locale.h>
main()
{
setlocale (LC_ALL,"RUS");
// ниже нужно написать код для подсчета сколько букв и цифр в последнем слове
_getch();
return 0;
}Решение задачи: «Подсчитать, сколько букв и цифр в последнем слове»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
char* get_last_word(char* string) {
char *pointer = strrchr(string, ' ');
char* word = "";
if (pointer && *(pointer + 1)) {
printf("SRC: %s\n", pointer + 1);
word = pointer + 1;
}
return word;
}
int get_count_digit(char* string) {
int count = 0;
int i = 0;
for (i = 0; string[i] != '\0'; ++i) {
if (string[i] >= '0' && string[i] <= '9') {
++count;
}
}
return count;
}
int get_count_characters(char* string) {
int count = 0;
int i = 0;
for (i = 0; string[i] != '\0'; ++i) {
if ((string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z')) {
++count;
}
}
return count;
}
int main(int argc, char **argv) {
char string[] = "I have many good 1nt3g3r!";
char* word = get_last_word(string);
printf("DST: %s\n", word);
printf("Count digits: %d\n", get_count_digit(word));
printf("Count characters: %d\n", get_count_characters(word));
return 0;
}
Объяснение кода листинга программы
- В функции
get_last_wordопределяется указатель на последнее слово в строке. - Если последнее слово не пустое, то оно выделяется в отдельную переменную
word. - В функции
get_count_digitподсчитывается количество цифр в строке. - В функции
get_count_charactersподсчитывается количество букв в строке. - В функции
mainопределяется входная строка. - Вызывается функция
get_last_wordдля получения последнего слова из строки. - Выводится последнее слово.
- Вызывается функция
get_count_digitдля подсчета количества цифр в последнем слове. - Вызывается функция
get_count_charactersдля подсчета количества букв в последнем слове. - Программа возвращает 0, заканчивая свое выполнение.