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

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

Восстановить пароль Регистрация
 
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:00     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #1
Доброго времени суток!
Сижу на форуме уже пол дня. Пытаюсь решить 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 посчитать сколько раз встречается указанный символ в строке.




Спасибо зарание!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rdksoft
 Аватар для rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
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
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:26  [ТС]     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #3
я не могу решить элементрарную задачу,
знаю только 1 язык
судя по моей теме это с++
зачем мне задача на языке с??????
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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;
}
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:40  [ТС]     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #5
на одну задачу легче)
Спасибо, Вам!
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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';
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
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);
       }
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 17:39  [ТС]     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #9
мы еще такого не учили,
а проще можно?

тю, сразу не посмотрела, это же С,
а мне С++ надо
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.03.2011, 17:40     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #10
Marshal_Женя, Зделайте хотя-бы одну задачу самостоятельно, не все же за Вас делать.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
13.03.2011, 17:50     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #11
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
мы еще такого не учили,
а проще можно?
пример из man, 30 строчек, комментарии. Что может быть проще?
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
тю, сразу не посмотрела, это же С,
а мне С++ надо
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Задача 2
Дан массив строк, выполнить сортировку с помощью strcmp по алфавиту.
strcmp - это ни разу не С++, а самая что ни на есть С-функция.
Marshal_Женя
 Аватар для Marshal_Женя
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
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.03.2011, 18:10     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #13
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Об этом Вы не задумывались?)
Ну хорошо, тогда давайте свои наработки, идеи по даному заданию, будем думать, и замтетьте не только мы но и Вы, столь уважаемый Marshal_Женя

Не по теме:

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

Marshal_Женя
 Аватар для Marshal_Женя
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 строка А сортировалась по алфавиту внутри себя
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.03.2011, 18:24     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #15
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
хочу сделать так что бы 1 строка А сортировалась по алфавиту внутри себя
Этого не понял, всмисле буквы чтобы сортировались или слова ?
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 18:34  [ТС]     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #16
Цитата Сообщение от asics Посмотреть сообщение
Этого не понял, всмисле буквы чтобы сортировались или слова ?
буквы
что бы
AEIOUYBCDFGHJKLMNPQRSTVWXZ

выстраивалось в алфавитном порядке
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 18:39     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ
Еще ссылки по теме:

Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля / C++ для начинающих C++
C++ Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
Написать программу для проверки работы процедуры ScalarProduct для вычисления скалярного произведения двух векторов C++

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

Или воспользуйтесь поиском по форуму:
Marshal_Женя
 Аватар для Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 18:39  [ТС]     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ #18
но если честно я сама не знаю что надо конкретно, я все подряд пробую, в условии написано:
Дан массив строк, выполнить сортировку с помощью strchr вот)

Добавлено через 36 секунд
Спасибо
Yandex
Объявления
13.03.2011, 18:39     СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ
Ответ Создать тему
Опции темы

Текущее время: 10:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru