Помощь - Поиск - Пользователи - Календарь
Полная версия: Прописные буквы
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
18192123
Скажите пожалуйста, как в Си можно определить является ли буква прописной или нет?
volvo
Для латинских символов: isupper(ch), для других кодировок придется делать самой...
18192123
Цитата(volvo @ 6.06.2007 14:06) *

Для латинских символов: isupper(ch), для других кодировок придется делать самой...

Я хочу посчитать количество прописных латинских символов, но только при тестированиии выдаёт на 1 больше или меньше, чем нужно....


#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
int Count(char *str)
{
int i, count = 0;
for (i = 0;i < strlen(str); i++)
if (isupper(str[i]))
count+=1;


return count;

}


void main()
{
char str[20]; int i = -1;
printf ("vvedite stroky\n");
do
i++;
while ((str[i] = getchar())!='.');

printf("%d",Count(str));

}



Ozzя
Марина, пробегись отладчиком по программе и сразу станет ясно, где заморочка.
volvo
Цитата
при тестированиии выдаёт на 1 больше или меньше, чем нужно....
Странно, у меня твой код выдает ровно столько, сколько и надо...
18192123
У меня тоже заработало, как следует. Но только в том случае, если символы вводить в одной строке, а точку в следующей.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.