Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
1

СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ

13.03.2011, 13:00. Показов 1941. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Сижу на форуме уже пол дня. Пытаюсь решить 3 задачи.
Помогите пожалуйста.


Библиотеки которые можно использовать
C++
1
2
3
4
#include <iostream>
#include <string.h>
#include <Windows.h>
#include <cmath>
не более

Задача 1

Пользователь вводит строку, программа должна определить палиндром ли это.
Вот что я написала

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main()
{
    char A[100];
    cin.getline(A, 100);
    int left_index = 0;
    int right_index = strlen(A)-1;
 
    while( left_index < right_index ) 
    {
            if( A[left_index++]!= A[right_index--])
                cout<<"false"<<endl;    
            else 
            cout<<"true"<<endl;
    }
 
}
мозгов мне не хватает , скажите как правильно.

Задача 2

Дан массив строк, выполнить сортировку с помощью strcmp по алфавиту.

Задача 3

С помощью strchr посчитать сколько раз встречается указанный символ в строке.




Спасибо зарание!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2011, 13:00
Ответы с готовыми решениями:

Есть ли стандартные либы для работы с Web камерой (для XE2)?
Нужно приложение записывающее видео + делающая фотки с вебки. Использую ХЕ2 - есть стандартные...

Программа для просмотра изображений, использующая стандартные процедуры для работы с бинарными файлами
Программа для просмотра изображений, формата bmp, использующая только стандартные процедуры для...

стандартные возможности Visual C++ 6.0 для работы с модемом(дозвон,передача сообщения)
Может кто сталкивался с подобными задачами,как разработка программ для работы с модемом (дозвон к...

Стандартные приемы работы с БД. Что использовать
здравствуйте.я пишу программу где нужно создать базу данных.чтобы она редактировалась несколькими...

17
24 / 24 / 6
Регистрация: 24.12.2008
Сообщений: 88
13.03.2011, 13:14 2
задача 1 решается рекурсией:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  /* программа на языке C */
 #include <stdio.h>
 #include <conio.h>
 #include <string.h>
char s[100];
int pal(char s[100]);
void main()
{ clrscr();
  printf("\nВведите строку: "); gets(s);
  if (pal(s)) printf("Строка является палиндромом");
     else  printf("Строка не является палиндромом");
}
int pal(char s[100])
{ int l; char s1[100];
  if (strlen(s)<=1) return 1;
  else {l=s[0]==s[strlen(s)-1];
        strncpy(s1, s+1, strlen(s)-2);
        s1[strlen(s)-2]='\0';
        return l&&pal(s1);}
}
Вот исходник ,статья,может найдете что нить полезное http://comp-science.narod.ru/Progr/Rekursia.html
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:26  [ТС] 3
я не могу решить элементрарную задачу,
знаю только 1 язык
судя по моей теме это с++
зачем мне задача на языке с??????
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
13.03.2011, 13:34 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() // функция main должна возвращать int
{
   char A[100];
   cin.getline(A, 100);
   int left_index = 0;
   int right_index = strlen(A)-1;
 
   while( left_index < right_index ) 
   {
      if( A[left_index++]!= A[right_index--])
      {
     cout<<"false"<<endl;                        
     return 0; // завершаем работу программы(выходим из функции main)
      }
   }
 
   cout<<"true"<<endl;
}
1
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:40  [ТС] 5
на одну задачу легче)
Спасибо, Вам!
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 13:52 6
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
посчитать сколько раз встречается указанный символ в строке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
#include <cstdio>
 
int main(){
  std::cout << "\n\nINput string -> ";
  char str[BUFSIZ], *p = str, ch;
  std::cin.getline(str, BUFSIZ - 1);
  std::cout << "\n\nINput symbol -> ";
  size_t cnt = 0;
  std::cin >> ch;
  while(*p != '\0'){
    if(*p == ch)
      ++cnt;
    ++p;
  }
  std::cout << cnt;
  return 0;
}
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
13.03.2011, 13:53 7
3.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main()
{   
   using namespace std;
 
   cout << "input string: ";
   char s[100];     
   cin.getline(s, 100);
 
   cout << "search for char: ";   
   char ch = cin.get();
 
   int count = 0;
   char* p = s;
   while((p = strchr(p, ch))) ++count, ++p;
   
   std::cout << "result: " << count << '\n';
}
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 14:32 8
2. Пример из man qsort - сортировка с помощью функции сравнения строк strcmp
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>
 
       static int
       cmpstringp(const void *p1, const void *p2)
       {
           /* The actual arguments to this function are "pointers to
              pointers to char", but strcmp(3) arguments are "pointers
              to char", hence the following cast plus dereference */
 
           return strcmp(* (char * const *) p1, * (char * const *) p2);
       }
 
       int
       main(int argc, char *argv[])
       {
           int j;
 
           if (argc < 2) {
            fprintf(stderr, "Usage: %s <string>...\n", argv[0]);
            exit(EXIT_FAILURE);
           }
 
           qsort(&argv[1], argc - 1, sizeof(argv[1]), cmpstringp);
 
           for (j = 1; j < argc; j++)
               puts(argv[j]);
           exit(EXIT_SUCCESS);
       }
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 17:39  [ТС] 9
мы еще такого не учили,
а проще можно?

тю, сразу не посмотрела, это же С,
а мне С++ надо
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 17:40 10
Marshal_Женя, Зделайте хотя-бы одну задачу самостоятельно, не все же за Вас делать.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 17:50 11
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
мы еще такого не учили,
а проще можно?
пример из man, 30 строчек, комментарии. Что может быть проще?
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
тю, сразу не посмотрела, это же С,
а мне С++ надо
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Задача 2
Дан массив строк, выполнить сортировку с помощью strcmp по алфавиту.
strcmp - это ни разу не С++, а самая что ни на есть С-функция.
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 17:59  [ТС] 12
Цитата Сообщение от asics Посмотреть сообщение
Marshal_Женя, Зделайте хотя-бы одну задачу самостоятельно, не все же за Вас делать.
Дорогой , asics, приношу свои величайшие извинения, за то что мой интелектуальный уровень развития в этой сфере не превосходит, Ваш.
А если так и есть извольте потрудиться и подумать:
зачем люди вылажвают задачи на форуме программистов и сисадминов, в разделе С++ для начинающих?
Может просто потму что они не могут их решить?
Об этом Вы не задумывались?)

Добавлено через 7 минут
Цитата Сообщение от Nameless One Посмотреть сообщение
пример из man, 30 строчек, комментарии. Что может быть проще?




strcmp - это ни разу не С++, а самая что ни на есть С-функция.
Ну спорить по этому поводу Вам не со мной, а с моим преподавателем который дал такой материал, и задачу соответственно

C++
1
2
3
4
5
int strcmp (char* s1, char *s2)
//выполняет сравнение строк
//0  s1==s2
// <0  s1<s2
// >0 s1>s2
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 18:10 13
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Об этом Вы не задумывались?)
Ну хорошо, тогда давайте свои наработки, идеи по даному заданию, будем думать, и замтетьте не только мы но и Вы, столь уважаемый Marshal_Женя

Не по теме:

умничать-то все умеют...

0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 18:23  [ТС] 14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
char A[100], B[100];
    cout<<"input A:";
    cin.getline(A, 100);
    cout<<"input B:";
    cin.getline(B, 100);
 
    int c=strcmp(A, B);
    if(c<0)
    {
        cout<<A<<endl<<B<<endl;
    }
    else
    if(c>0)
    {
        cout<<B<<endl<<A<<endl;
    }
    else
    {
        cout<<B<<A<<endl;
    }

как бы не было это банально - вот..
хочу сделать так что бы 1 строка А сортировалась по алфавиту внутри себя
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 18:24 15
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
хочу сделать так что бы 1 строка А сортировалась по алфавиту внутри себя
Этого не понял, всмисле буквы чтобы сортировались или слова ?
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 18:34  [ТС] 16
Цитата Сообщение от asics Посмотреть сообщение
Этого не понял, всмисле буквы чтобы сортировались или слова ?
буквы
что бы
AEIOUYBCDFGHJKLMNPQRSTVWXZ

выстраивалось в алфавитном порядке
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 18:38 17
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Ну спорить по этому поводу Вам не со мной, а с моим преподавателем который дал такой материал, и задачу соответственно
Ну вот тебе на С++, еще короче. Правда, тут strcmp и не пахнет...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::deque<std::string> lines;
    std::string line;
    
    std::cout << "Input lines (Ctrl+D to stop):" << std::endl;
    while(std::getline(std::cin, line))
    lines.push_back(line);
 
    std::sort(lines.begin(), lines.end());
 
    std::cout << "Sorted lines:" << std::endl;
    std::copy(lines.begin(), lines.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 18:39  [ТС] 18
но если честно я сама не знаю что надо конкретно, я все подряд пробую, в условии написано:
Дан массив строк, выполнить сортировку с помощью strchr вот)

Добавлено через 36 секунд
Спасибо
0
13.03.2011, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2011, 18:39
Помогаю со студенческими работами здесь

Стандартные алгоритмы работы с одномерными массивами
1. Ввод массива целых чисел. 2. Вывод массива в строку. 3. Найти минимальный элемент. Найти...

Turbo Pascal Стандартные функции работы со строками
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести...

Программа со стоками
Задача, вывести количество символов строки и первую букву каждого слова сделать заглавной. По идее,...

работа со стоками
строка введется с клавиатуры; на пример &quot;Фывфылож аываывры ававыпавр. Аапыват аыв ркрк пкув....


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru