Автор Тема: "C" Изследване на стрингове  (Прочетена 1087 пъти)

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Здравейте! Имам малко затруднения при изследване на стрингове или по-точно на низ от символи. Трябва да се напише цикъл, който чете символи от клавиетурата, изследва и установява колко символа са въведени, дали има цифри и например някоя букв (например 'А'). Ето го моето предложение, което не дава никаква информация:
Код
GeSHi (C):
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. char ch;
  5. int na,nz,n;
  6.  
  7. printf("Please enter a symbol: ");
  8. while((ch=getchar() !=EOF))
  9. {
  10. n=na=nz;
  11. n++;
  12. if(ch=='A') na++;
  13. if(ch>='0' && ch<='9') nz++;
  14. }
  15. return 0;
  16. }
  17.  
  18.  

Приемам всякакви критики и предложения! Благодаря!
« Последна редакция: Nov 11, 2011, 00:55 от VladSun »
Активен

shoshon

  • Напреднали
  • *****
  • Публикации: 497
    • Профил
Re: "C" Изследване на стрингове
« Отговор #1 -: Nov 11, 2011, 04:11 »
Код
GeSHi (C):
  1. int na=0,nz=0,n=0;
  2.  
  3. while((ch=getchar() !=EOF))    --->   while((ch=getchar()) !=EOF)
  4.  
WTF??? n=na=nz; ???
« Последна редакция: Nov 12, 2011, 01:49 от VladSun »
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Re: "C" Изследване на стрингове
« Отговор #2 -: Nov 11, 2011, 07:28 »
1-во и много важно - трите променливи n, na, nz само ги декларираш, но никъе не ги инициализираш, т.е. при последващото инкрементиране не е ясно какви стойности ще имат. Предполагам това е била целта на реда
Код
GeSHi (C):
  1. n=na=nz
но, по-смислено би било да е
Код
GeSHi (C):
  1. n=na=nz=0
и да е извън цикъла, защото така както си го написал при всяко влизане в цикъла променливите ще имат една и съща стойност
2. Какава е идеята на променливата n - декларираш я, но доколкото виждам не я използваш никъде. Предполагам е останала при преписването на някой друг цикъл, който си гледал.
3. Каквото и да се случва с променливите ти в крайна сметка никъде не ги "показваш" - един printf преди return-a ще ти покаже какво е станало след края на цикъла
« Последна редакция: Nov 12, 2011, 01:49 от VladSun »
Активен

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Re: "C" Изследване на стрингове
« Отговор #3 -: Nov 11, 2011, 09:21 »
Благодаря на всички! Цикълът тръгна и работи! Успешен ден!
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: "C" Изследване на стрингове
« Отговор #4 -: Nov 11, 2011, 09:27 »
Благодаря на всички! Цикълът тръгна и работи! Успешен ден!

И как тръгна? Я дай кода.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

bz1pp3d

  • Напреднали
  • *****
  • Публикации: 15
  • Distribution: Arch
  • Window Manager: openbox
    • Профил
Re: "C" Изследване на стрингове
« Отговор #5 -: Nov 11, 2011, 09:57 »
Код
GeSHi (C):
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. char ch;
  5. int na,nz,n;
  6. na=nz=n=0;
  7. printf("Bitte geben Sie eine Folge von Symbolen ein: ");
  8. while((ch=getchar()) !=EOF)
  9. {
  10. n++;
  11. if(ch=='A') {printf("Buchstabe A: %c\n", ch); na++;}
  12. if(ch>='0' && ch<='9'){printf("Ziffern: %c\n", ch); nz++;}
  13.  
  14. }
  15. return 0;
  16. }
  17.  
  18.  
« Последна редакция: Nov 12, 2011, 01:48 от VladSun »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
"paskal case" / "camel case"
Общ форум
Apache 3 7906 Последна публикация Aug 11, 2006, 10:01
от ivak
Проблем с "struct cdev" и "struct semaphore"
Общ форум
halturata 22 13312 Последна публикация Aug 14, 2007, 17:31
от tarator
Проблем с "reboot", "halt" и т.н.
Настройка на програми
turboshark 5 7698 Последна публикация Sep 22, 2007, 00:13
от turboshark
SUSE Linux Enterprise 10 Server "Subscription"
Кошче
badmind 2 3774 Последна публикация Apr 01, 2009, 18:21
от seaman
Postfix Unknown Local Recipient "Message"
Настройки на софтуер
Neoromantic 8 6072 Последна публикация Feb 07, 2010, 15:15
от Neoromantic