Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
#1

Задача со строками - C++

24.10.2011, 12:46. Просмотров 427. Ответов 3
Метки нет (Все метки)

Есть задача с 4 условиями.2 из них сделал,но 2 не правильно работает.Еще нужно сделать 2.Помогите пожалуйста=)
1)Определить минимальную длину слова.2)Проверить есть ли в указанном слове согласные буквы.3)Выдаьть на печать все слова начинающиеся с гласной буквы.4)Заменить на ps первое вхождение x.
Код по частям
Здесь я разбил текст на слова
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
main()
{
 char A[100],B[30][20],C[6]={'e','y','u','i','o','a'};
 char D[20]={'q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};
 int i,j,m,l,n,min,k;
 puts("Введите текст");
 gets(A);
 n=strlen(A);
 i=0;j=0;
 for(l=0;l<n;l++)
 if(A[l]!=' '){B[i][j]=A[l];j++;}
 else{B[i][j]='\0';i++;j=0;}
 B[i][j]='\0';i++;
 m=i;
Нашел и вывел минимальное
C++
1
2
3
4
5
6
7
8
 min=1000;
 for(i=0;i<m;i++)
 {
  n=strlen(B[i]);
  printf("n=%d\n",n);
  if(n<min)min=n;
 }
 printf("min=%d\n",min);
Проверяю на согласные буквы(как раз не правильно работает)
C++
1
2
3
4
5
6
7
8
 printf("Введите номер слова=");
 scanf("%d",&k);
 n=strlen(B[k]);
 l=0;
 for(i=0;i<n;i++)
 for(j=0;j<20;j++)
 if(B[k][i]==D[j])l=1;
 if(l==0) puts("Нет согласных");else puts("Есть согласные");
Просто выводит текст уже разбитый на слова
C++
1
2
3
4
 puts("Полученный текст");
 for(i=0;i<m;i++)
 puts(B[i]);
}
Добавлено через 18 часов 29 минут
Ребят,проблемма все еще актуальна =)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2011, 12:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача со строками (C++):

Задача со строками - C++
Условие: Дана строка текста, в которой слова разделены пробелами. Необходимо: ***************************** - определить количество...

Задача со строками - C++
Готовлюсь к ЕГЭ и решаю задачи на программирование. Вот столкнулся с проблемой. Ниже приложу саму задачу и код, который я написал....

задача со строками - C++
пожалуйста, помогите. Нужно написать программу , которая определит длину введенной строки L, и, если L&gt;10, то удаляются все цифры. я...

Задача со строками - C++
ПРОГРАММА НА ЯЗЫКЕ СИ!!!!!!!нужен код тоже в СИ))))) Всем привет, нужна помощь в изменении части кода в частности это код для задачи ...

Задача с файлами и строками! - C++
В текстовом файле записаны строки длиной не более 255 символов, слова в которых разделены хотя бы одним пробелом или знаками препинания. В...

Задача в С++. ТЕМА : ОПЕРАЦИИ СО СТРОКАМИ - C++
ТЕМА : ОПЕРАЦИИ СО СТРОКАМИ Напишите программу, которая вставляет символ тире после каждого перехода с буквы на цифру и наоборот с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
24.10.2011, 13:51 #2
Цитата Сообщение от C1keu Посмотреть сообщение
Проверяю на согласные буквы(как раз не правильно работает)
исходя из концепции функция работает правильно, другое дело вот это
C
1
2
3
4
puts("Полученный текст");
 for(i=0;i<m;i++)
 puts(B[i]); //массив-то двумерный
}
вообще я советую полностью переписать программу где в качестве исходного предложения использовать не двумерный массив, а указатель
C
1
char *
кроме того если вы пишете на Си, то посмотрите (хоть бы и в вики) string.h, там описаны все функции библиотеки, которые тут очень даже понадобятся. Не жалейте пробелов в коде, так его легче читать.

Мимоходом свой вопрос решу. у меня после обновы до gcc-4.6 появился такой фокус, вызывающий сегфолт. Если присваивать через промежуточный байт, то все в норме. Что это? На 4.5 работало. Если можно без лишней воды и только если известно в чем дело.
C
1
2
3
4
5
6
char *a = "123456";
int i = 0;
while(a[i + 1] != 0 /*'\0'*/)
    a[i] = a[1 + i++];
    //a[i] = a[i + 1]; ++i;  варианты
    //a[i] = a[++i];
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
24.10.2011, 13:58 #3
C1keu, в таки случаях говори: я ввёл ТО-ТО И ТО-ТО и была ошибка.
Чтобы я не тратил время на поиск варианта, который даёт ошибку.
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.10.2011, 14:05 #4
Цитата Сообщение от alkagolik Посмотреть сообщение
Мимоходом свой вопрос решу. у меня после обновы до gcc-4.6 появился такой фокус, вызывающий сегфолт. Если присваивать через промежуточный байт, то все в норме. Что это? На 4.5 работало. Если можно без лишней воды и только если известно в чем дело.
Создается указатель на строковую константу и затем идет попытка эту константу изменить.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2011, 14:05
Привет! Вот еще темы с ответами:

Задача со строками; запись в файл - C++
1. Написать программу, которая, считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте....

Задача со строками библиотеки STL - C++
Приветствую тех, кто пришёл сюда помочь юному падавану, желающему познать силу С++. К делу. У меня стоит задача : Создать программу,...

Задача со строками без использования библиотеки string.h - C++
Дана непустая строка S. Вывести на экран Эту же строку S, но с пробелами между символами.

Задача со строками(найти в тексте определенные слова) - C++
Ребят, помогите с задачкой: В имеющемся словаре найти группы слов, записанных одними и теми же буквами и отличающиеся только их порядком,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2011, 14:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru