![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 19
|
![]()
Дана вот такая задача:
1.Дана строка и натуральное число n. Определить количество пробелов в подстроке, состоящей из первых n символов исходной строки, и выяснить, имеются ли в этой подстроке в точности два соседствующих символа «?» (если вводимое значение n оказывается больше длины строки, выдать сообщение об ошибке). У меня получился вот такой код: #include <stdio.h> #include <ncurses.h> int Length (const char*s, const int n); int Num (char* s, int n); int Ask (char* s, int n); char* ResultF (char* s, int n); int main() { char str[1000]; int n; clear; do { printf ("Введите строку, содержащую символ '??' или не содержащую такового (на ваш выбор)\n"); fgets(str,1000,stdin); printf ("Введите колличество символов подстроки:\n"); scanf("%d",&n); printf (ResultF(str,n)); } while (0<=n||n<=1000); if (1000>n||n<0) printf ("\nОшибка. Введенное значение превышает длину строки.\n"); return 0; getch(); } int Length (const char* s, const int n) { int i; if (s[i] <= n) for ( i=0; s[i] != '\0'; i++ ) return i; } int Num (char* s, int n) { int i; int lh=Length(s,n); int probel; int prob; for ( i=0; i<=lh; i++ ) { if (prob=' ') do { probel=getchar(); switch (probel) { case ' ': prob++; printf ("\nВ подстроке содержится %d пробелов\n", prob);break; default: printf ("\nВ подстроке не пробелов\n"); } } while (probel != EOF); } return i; } int Ask (char* s, int n) { int i; int lh=Length(s,n); for (i=0; i<lh; i++) { if (s[i] == '??') printf ("\nВ подстроке присутствует символ '??'\n"); else printf ("\nВ подстроке отсутствует символ '??'\n"); } return i; } char* ResultF (char* s, int n) { int i; int lh= Length(s,n); int nu=Num(s,n); int ak=Ask(s,n); for (i=0; i<lh; i++) {(s[i] == nu)&&(s[i] == ak);} return s; } Не могу понять где ошибка. Компилятор ошибок не находит, однако сама программа работает неадекватно - выдает сообщение только о том что в подстроке нет пробелов. Возможно я что-то напутал в программе подсчета. Подскажите пожалуиста. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск и удаление символа в строке | Karl_Karlovi4 | Общие вопросы Delphi | 14 | 26.10.2011 18:04 |
поиск и подсчет по условиям | insector | Microsoft Office Excel | 1 | 18.09.2009 18:47 |
поиск в строке символа | IvanM | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 02.06.2009 22:27 |
Поиск символа в Edit1.text | Alar | Компоненты Delphi | 0 | 29.10.2006 19:02 |