Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/78: Рейтинг темы: голосов - 78, средняя оценка - 4.74
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Функция и реверс строки

19.04.2010, 19:29. Показов 14924. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Составить программу, которая реверсирует каждое слово строки str.
2. Написать и протестировать функцию STRP(str1, str2), которая возвращает указатель на последнее вхождение символа из строки str2 в строку str1. Если ни один символ строки str2 не входит в строку str1, то возвратить NULL.

Помогите написать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2010, 19:29
Ответы с готовыми решениями:

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

Реверс строки
Не могу написать программу которая перестанавливает символы в строке(abc->cba)

Реверс строки в стиле Си
Подскажите как написать собственную функцию реверса строки в стиле СИ?

11
 Аватар для Hypafrag
26 / 25 / 3
Регистрация: 19.03.2010
Сообщений: 57
19.04.2010, 19:42
1:
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
31
#include <stdio.h>
#include <string.h>
 
char *strrev(char *str)
{
int j = 0;
static char ret[256];
 
    for (int i = strlen(str) - 1; i >= 0; i--)
    {
        ret[j++] = str[i];
    }
    ret[j] = '\0';
    return ret;
}
 
int main()
{
char *p;
char str[256], str2[256] = "";
 
    gets(str);
    p = strtok(str, " ");
    while (p != NULL)
    {
        strcat(str2, strrev(p));
        p = strtok(NULL, " ");
        if (p != NULL) strcat(str2, " ");
    }
    puts(str2);
}
2
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.04.2010, 22:27  [ТС]
помогите со второй.
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
20.04.2010, 01:42
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
помогите со второй
C++
1
2
#include <cstring>
char *strrchr(const char *str, int ch);
Добавлено через 6 минут
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Составить программу, которая реверсирует каждое слово строки str.
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
#include <iostream>
 
using namespace std;
 
void TurnStr(char *str)
{
      char tmp;
      int i=0;
      int size=0;
      for (size; str[size]!='\0'; size++);
      size--;
      while (i<=size)
      {
            tmp=str[i];
            str[i]=str[size];
            str[size]=tmp;
            size--;
            i++;
      }
}
 
int main()
{
    char st[20]="I like C++";
    TurnStr(st);
    cout<<st;
    return 0;
}
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
20.04.2010, 05:01
2
C
1
2
3
4
5
6
7
8
9
char *strp(char *str, char ch)
{
   char *buf = NULL;
 
   for (; *str != '\0'; str++)
      if (*str == ch)
         buf = str;
   return buf;
}
1
Peace 2 all shining faces
 Аватар для Vorona
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.04.2010, 05:50
PointsEqual, не всю, строку а каждое слово, т.е. я предполагаю, что из "I like C++" получится "I ekil ++C", а не "++C ekil I"...
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
20.04.2010, 20:52  [ТС]
А можете объяснить вторую задачу, что нужно в ней делать. А то я не могу понять, каким боком мне прикрутить функцию, и что она должна выполнять в мэйне. Заранее спасибо, пока что набросал так, но это лажа:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
 
char *strp(char *, char)
 
int main()
{
char str[256];
 
    gets(str);
strtp(str);
}
 
char *strp(char *str, char ch)
{
   char *buf = NULL;
 
   for (; *str != '\0'; str++)
      if (*str == ch)
         buf = str;
   return buf;
}
Добавлено через 5 часов 7 минут
Объяснение ещё нужно.
0
 Аватар для Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
20.04.2010, 21:27
Bloodykeeper, не знаю мож покатит,тут у ся нашел
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
31
32
33
#include<stdio.h>
#include<conio.h>
int STRP(char str1[],char str2[]);
int main()
{int k;
 char s1[20],s2[20];
 puts("введите первую строку");
 gets(s1);
 puts("введите вторую строку");
 gets(s2);
 k=STRP(s1,s2);
 if (k==0)
 puts("вхождений небыло");
 else
 printf("первое вхождение %d",k);
 getch();}
int STRP(char str1[],char str2[]);
 int i,n,k[20],r=1,min,s;
 char l,c=str2[1];
 for(i=1;c!='\0';++i)
 {l=str1[1]
 while(l!='\0')
 {if (str2[i]==str1[j]) 
{k[r]=j;
  l='\0';
  ++r}
  l=str1[j];}
  c=str2[i];}
  min=k[1];
  for(i=2;i<=r-1;++i)
  if (min>k[i]) 
  min=k[i];
  return(min);}
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
21.04.2010, 20:51  [ТС]
помогите исправить предыдущий код пожалуйста, или создать нормальный на Си...а то нифига не работает. Заранее спс.

Добавлено через 6 минут
или вот я что-то склеил, но не пойму как она работает, всё время пишет, что ничего не входило:
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
#include<stdio.h>
#include<conio.h>
 
char *strp(char *, char);
 
int main(){
    int k;
    char s1[20],s2[20];
    puts("Enter the first string: ");
        gets(s1);
    puts("\nEnter the second string: ");
        gets(s2);
    k=strp(s1,s2);
    if (k==0)
        puts("Nothing entered!");
    else
        printf("First enter is %d",k);
    getch();
}
 
char *strp(char *str, char ch)
{
   char *buf = NULL;
 
   for (; *str != '\0'; str++)
      if (*str == ch)
         buf = str;
   return buf;
}
помогите пожалуйста понять задачу..
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
22.04.2010, 04:43
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char str[20] = {'\0'}, ch;
char *tmp;
printf ("Введите строку: ");
gets(str);
printf("Введите символ: ");
getc(ch);
if ((tmp = strp(str, ch)) == NULL)
   printf("Строка \"%s\" не содержит символ \'%c\'\n", str, ch);
else
{
   printf("Символ \'%c\' в строке \"%s\" будет заменен на символ \'#\'\n", ch, str);
   *tmp = '#';
   printf("%s\n", str);
}
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
22.04.2010, 08:40  [ТС]
Спасибо, но пишет вот такой олг ошибок, в чем может быть причина?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
Compiling...
Text1.c
P:\@_AиП\Задание 4\3\Text1.c(12) : error C2223: left of '->_cnt' must point to struct/union
P:\@_AиП\Задание 4\3\Text1.c(12) : error C2223: left of '->_ptr' must point to struct/union
P:\@_AиП\Задание 4\3\Text1.c(12) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'char '
P:\@_AиП\Задание 4\3\Text1.c(12) : warning C4024: '_filbuf' : different types for formal and actual parameter 1
P:\@_AиП\Задание 4\3\Text1.c(22) : error C2143: syntax error : missing ';' before 'type'
P:\@_AиП\Задание 4\3\Text1.c(26) : error C2105: '++' needs l-value
P:\@_AиП\Задание 4\3\Text1.c(28) : error C2065: 'buf' : undeclared identifier
P:\@_AиП\Задание 4\3\Text1.c(28) : warning C4047: '=' : 'int ' differs in levels of indirection from 'char *'
Error executing cl.exe.
 
Text1.obj - 5 error(s), 3 warning(s)
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
22.04.2010, 11:59
Допустил ошибку в 6 строке, правильно ch = getc(stdin);
Полный вариант:
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
31
32
33
34
#include <stdio.h>
 
char *strp(char *str, char ch)
{
   char *buf = NULL;
 
   for (; *str; str++)
      if (*str == ch)
         buf = str;
   return buf;
}
 
int main(int argc, char* argv[])
{
   char str[80] = {'\0'};
   char ch;
   char *tmp;
 
   printf("Ââåäèòå ñòðîêó: ");
   gets(str);
   printf("Ââåäèòå ñèìâîë:");
   ch = getc(stdin);
   if ((tmp = strp(str, ch)) == NULL)
      printf ("Ñòðîêà \"%s\" íå ñîäåðæèò ñèìâîë \'%c\'\n", str, ch);
   else
   {
      printf ("Ïîñëåäíèé ñèìâîë \'%c\' â ñòðîêå \"%s\" áóäåò çàìåíåí ñèìâîëîì \'#\'\n", ch, str);
      *tmp = '#';
      printf ("%s", str);
   }
   getchar();
   getchar();
   return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2010, 11:59
Помогаю со студенческими работами здесь

Не работает реверс строки
Всем привет, ребятки! Я тут принялся работать с функциями обработки строк, и у меня возник вопрос. Вот вам сначала мой код: #include...

Реверс строки без копирования
Здравствуйте, у меня вопрос только по условию задачи, не могу понять, что от меня требуется. Задача &quot;Написать функцию void...

Реверс строки через итераторы
std::string s=&quot;123456&quot;; s.replace(s.begin(),s.end(),s.rbegin(),s.rend()); std::cout&lt;&lt;s&lt;&lt;std::endl; Почему-то работает правильно и...

Реверс строки в обратно алфавитном порядке
Написать программу для ввода строки и вывода ее в обратном порядке по алфавиту Добавлено через 1 час 32 минуты ...

Строки, работа с файлом. Реверс и циклический сдвиг в словах
Вот задание Для произвольного текста(Взятого из файла), содержащего не более 10 строк, в каждой строке не более 80 символов, переставить...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru