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

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

Войти
Регистрация
Восстановить пароль
 
 
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
#1

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

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

Доброго времени суток!
Сижу на форуме уже пол дня. Пытаюсь решить 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2011, 13:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос СТАНДАРТНЫЕ Ф-И ДЛЯ РАБОТЫ СО СТОКАМИ (C++):

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

Какие стандартные библиотеки нужно изучать для программирования c++? - C++
Посоветуйте, какие стандартные библиотеки нужно изучать для программирования c++, и где узнать вообще команды c++, а так же много ли их...

Пакетированные стандартные блоки - Вложенные стандартные блоки - C++
Кто нибудь может объяснить на примере кода С, как это выглядит?

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

Переделать программу работы с массивом для работы с вектором - C++
помогите переделать эту программу!!...при одном условии....вот что находится между int main() и return 0; сохранить.....здесь нужно...

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

17
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
0
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:26  [ТС] #3
я не могу решить элементрарную задачу,
знаю только 1 язык
судя по моей теме это с++
зачем мне задача на языке с??????
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 13:40  [ТС] #5
на одну задачу легче)
Спасибо, Вам!
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 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
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 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
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
13.03.2011, 17:39  [ТС] #9
мы еще такого не учили,
а проще можно?

тю, сразу не посмотрела, это же С,
а мне С++ надо
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 17:40 #10
Marshal_Женя, Зделайте хотя-бы одну задачу самостоятельно, не все же за Вас делать.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 17:50 #11
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
мы еще такого не учили,
а проще можно?
пример из man, 30 строчек, комментарии. Что может быть проще?
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
тю, сразу не посмотрела, это же С,
а мне С++ надо
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Задача 2
Дан массив строк, выполнить сортировку с помощью strcmp по алфавиту.
strcmp - это ни разу не С++, а самая что ни на есть С-функция.
0
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
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 18:10 #13
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
Об этом Вы не задумывались?)
Ну хорошо, тогда давайте свои наработки, идеи по даному заданию, будем думать, и замтетьте не только мы но и Вы, столь уважаемый Marshal_Женя

Не по теме:

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

0
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 строка А сортировалась по алфавиту внутри себя
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.03.2011, 18:24 #15
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
хочу сделать так что бы 1 строка А сортировалась по алфавиту внутри себя
Этого не понял, всмисле буквы чтобы сортировались или слова ?
0
13.03.2011, 18:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 18:24
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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