Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Прописные буквы

Автор: 18192123 6.06.2007 16:59

Скажите пожалуйста, как в Си можно определить является ли буква прописной или нет?

Автор: volvo 6.06.2007 17:06

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

Автор: 18192123 6.06.2007 17:49

Цитата(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я 6.06.2007 18:00

Марина, пробегись отладчиком по программе и сразу станет ясно, где заморочка.

Автор: volvo 6.06.2007 18:06

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

Автор: 18192123 6.06.2007 18:27

У меня тоже заработало, как следует. Но только в том случае, если символы вводить в одной строке, а точку в следующей.