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

Работа со строками

20.12.2015, 11:47. Показов 2282. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, друзья-программисты. Дали в универе лабу по строкам. У нас выпала лекция и сказали самостоятельно изучить. Прочитал много информации по строкам, но так и не понял как написать. Помогите написать программу пожалуйста. Я пробовал сам, но ничего не вышло, тем более на руках даже примера программы нету
Одну строку инициализировать в программе, другую – ввести с клавиатуры. В каждой из строк переместить первый символ в конец строки, после чего соединить строки, расположив вначале наибольшую из них по алфавиту. Определить в новой строке количество гласных букв.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2015, 11:47
Ответы с готовыми решениями:

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками
Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений. Если этого слова в строке нет, то...

Работа со строками C++
Решил посвятить этой проблеме отдельную тему. В попытке написать ответ к этой задаче на С++ запнулся на работе со строками. Собственно...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.12.2015, 11:59
C++
1
2
3
4
5
6
7
8
9
10
11
string s1 = "abcd", s2, s3;
 
cin >> s2;
 
s1 += s1[0];
s1 = s1.substr(1);
s2 += s2[0];
s2 = s2.substr(1);
 
if (s1 > s2) s3 = s1 + s2;
else s3 = s2 + s1;
Гласные сам подсчитай.
1
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
20.12.2015, 12:04
Лучший ответ Сообщение было отмечено CyaNDEL как решение

Решение

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
string s1="Hello";
getline(cin,s2);
// переместить первый символ в конец строки
char c=s1[0];
s1[0]=s1[s1.size()-1];
s1[s1.size()-1]=c;
 
c=s2[0];
s2[0]=s2[s2.size()-1];
s2[s2.size()-1]=c;
cout<<s1<<'\n'<<s2<<endl;
 
//соединить строки, расположив вначале наибольшую
if(s1>s2)
  s1+=s2;
else
   s1=s2+s1;
cout<<s1<<endl;
// Определить в новой строке количество гласных букв.
string glasn("aeioy");
int count=0;
for(size_t i=0;i<s1.size();i++)
    for(size_t j=0;j<glasn.size();j++)
        if(s1[i]==glasn[j])
        {
            count++;
            break;
        }
cout << count<< endl;
1
2 / 2 / 0
Регистрация: 15.12.2015
Сообщений: 37
20.12.2015, 12:17  [ТС]
компилятор выдает ошибку все время. Что-то ему не нравится. Вот лог:
Compiler: TDM-GCC 4.7.1 64-bit Release
Executing g++.exe...
g++.exe "C:\Users\Matvey\Desktop\Untitled1.c pp" -o "C:\Users\Matvey\Desktop\Untitled1.e xe" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
C:\Users\Matvey\Desktop\Untitled1.cpp: In function 'int main()':
C:\Users\Matvey\Desktop\Untitled1.cpp:5: 1: error: expected ')' before 'string'
C:\Users\Matvey\Desktop\Untitled1.cpp:6: 9: error: 'cin' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:6: 9: note: suggested alternative:
In file included from C:\Users\Matvey\Desktop\Untitled1.cpp:2: 0:
c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/iostream:61:18: note: 'std::cin'
C:\Users\Matvey\Desktop\Untitled1.cpp:6: 13: error: 's2' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:6: 15: error: 'getline' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:6: 15: note: suggested alternative:

In file included from c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/string:54:0,
from C:\Users\Matvey\Desktop\Untitled1.cpp:1:
c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/bits/basic_string.h:2792:5: note: 'std::getline'
C:\Users\Matvey\Desktop\Untitled1.cpp:7: 8: error: 's1' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:14 :1: error: 'cout' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:14 :1: note: suggested alternative:
In file included from C:\Users\Matvey\Desktop\Untitled1.cpp:2: 0:
c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/iostream:62:18: note: 'std::cout'
C:\Users\Matvey\Desktop\Untitled1.cpp:14 :21: error: 'endl' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:14 :21: note: suggested alternative:
In file included from c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/iostream:40:0,
from C:\Users\Matvey\Desktop\Untitled1.cpp:2:
c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/ostream:562:5: note: 'std::endl'
C:\Users\Matvey\Desktop\Untitled1.cpp:20 :1: error: 'string' was not declared in this scope
C:\Users\Matvey\Desktop\Untitled1.cpp:20 :1: note: suggested alternative:
In file included from c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/string:41:0,
from C:\Users\Matvey\Desktop\Untitled1.cpp:1:
c:\program files (x86)\dev-cpp\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.1/include/c++/bits/stringfwd.h:65:33: note: 'std::string'

C:\Users\Matvey\Desktop\Untitled1.cpp:20 :8: error: expected ';' before 'glasn'

C:\Users\Matvey\Desktop\Untitled1.cpp:23 :22: error: 'glasn' was not declared in this scope

Execution terminated

Интересно, что если дописать в начале std::string, то он перестает ругаться
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
20.12.2015, 12:19
C++
1
using namespace std;
0
2 / 2 / 0
Регистрация: 15.12.2015
Сообщений: 37
20.12.2015, 12:24  [ТС]
Благодарю, теперь ошибки ушли, но вылезает вот что: [Error] 's2' was not declared in this scope
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
20.12.2015, 12:26
И что, Вы самостоятельно не можете написать
C++
1
string s2;
???????????????????????
1
2 / 2 / 0
Регистрация: 15.12.2015
Сообщений: 37
20.12.2015, 12:33  [ТС]
Спасибо вам огромное, добрый человек! Не злитесь на меня, что заваливаю вас вопросами и спрашиваю очевидные для вас вещи. Для меня программирование - глухой лес и я совершенно не разбираюсь в нем. Главное - теперь все работает. Еще раз спасибо)

Переделал с strlen. Гласные считает, а с перестановкой символов и объединением ахинея какая-то творится при запуске программы. В общем, она неправильно работает. Что я не так сделал?
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
35
36
37
38
39
40
41
42
43
#include <cstring>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{setlocale(LC_ALL,"Russian");
char s1[]="hello", s2[100];
cout<<"Ââåäèòå ñòðîêó:"<<endl;
gets(s1);
//ïåðâûé ñèìâîë â êîíåö ñòðîêè
char c=s1[0];
s1[0]=strlen(s1)-1;
strlen(s1)-1==c;
 
c=s2[0];
s2[0]=strlen(s2)-1;
strlen(s2)-1==c;
cout<<"Èçìåíåííûå ñòðîêè:"<<endl;
cout<<s1<<'\n'<<s2<<endl;
//Ñîåäèíèòü ñòðîêè, ðàñïîëîæèâ âíà÷àëå áîëüøóþ
if(strcmp(s1,s2)>0)
strcat(s1,s2);
else
{
strcat(s2,s1);
strcpy(s1,s2);
}
cout<<"Ñîåäèíåííûå ñòðîêè:"<<endl;
cout<<s1<<endl;
// Îïðåäåëèòü â íîâîé ñòðîêå êîëè÷åñòâî ãëàñíûõ
char glasn[]="aeiouy";
int count=0;
for(size_t i=0;i<s1[i];i++)
for(size_t j=0;j<glasn[j];j++)
if(s1[i]==glasn[j])
{
count++;
break;
}
cout<<"Êîëè÷åñòâî ãëàñíûõ â ïîëó÷åííîé ñòðîêå:"<<endl;
cout<<count<<endl;
return 0;
}
1
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
24.12.2015, 11:01
Лучший ответ Сообщение было отмечено CyaNDEL как решение

Решение

Ошибок столько, что проще привести весь текст
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
35
36
37
38
39
40
41
42
43
44
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    char s1[100]="hello", s2[100];
    cout<<"Введите строку на английском языке:"<<endl;
    gets(s2);
    // переместить первый символ в конец строки
    char c=s1[0];
    s1[0]=s1[strlen(s1)-1];
    s1[strlen(s1)-1]=c;
 
    c=s2[0];
    s2[0]=s2[strlen(s2)-1];
    s2[strlen(s2)-1]=c;
    cout<<"Строки после перемещения:"<<endl;
    cout<<s1<<'\n'<<s2<<endl;
    //соединить строки, расположив вначале наибольшую
    if(strcmp(s1,s2)>0)
        strcat(s1,s2);
    else
    {
        strcat(s2,s1);
        strcpy(s1,s2);
    }
    cout<<"объединенные строки:"<<endl;
    cout<<s1<<endl;
    //  Определить в новой строке количество гласных букв.
    char glasn[]="aeiouy";
    int count=0;
    for(size_t i=0;s1[i]!=0;i++)
        for(size_t j=0;glasn[j]!=0;j++)
            if(s1[i]==glasn[j])
            {
                count++;
                break;
            }
    cout<<"Количество гласных:"<<endl;
    cout<<count<<endl;
    system("pause");
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2015, 11:01
Помогаю со студенческими работами здесь

Работа со строками
Здравствуйте! Прошу помочь разобраться с программой, она не работает, и я не могу понять почему. #include &lt;iostream&gt; #include...

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

Работа со строками
Дана строка, содержащая полное имя файла. Выделить из этой строки название последнего каталога (без символов «\»). Если файл содержится в...

Работа со строками
У меня есть есть структурные переменные и указатели на них, естественно. предположим struct name() { char...

Работа со строками
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных (маленьких) латинских букв; между соседними...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru