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

Строки(вывод)

09.01.2010, 23:53. Показов 1448. Ответов 17

Author24 — интернет-сервис помощи студентам
такая проблема...
дана задача Вывести на экран последние 5 символов заданной строки. Длина строки должна быть не менее 10.





через функцию работает:
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 <vcl.h>
#include <conio.h>
#include<iostream.h>
 
    void main()
{
char*str;
void fstr(char*s);
cout<<"vvedite stroku: " ;
cin>>str;
fstr(str);
}
void fstr(char*s)
{
cout<<"stroka posle :  " ;
for(int i=strlen(s)-5;i<strlen(s);i++)
{
 
 
cout<<*(s+i);
 
 
}
 
 
getch();
}




как все это сделать в void main()?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2010, 23:53
Ответы с готовыми решениями:

Вывод строки на экран после ввода 1 слово это строки
Стоит задача вывести целую строку из файла введя в диалоговое окно 1 слово из этой строчки. Из...

Вывод на экран чётных слов строки исправить на вывод нечётных слов
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; int i,l,j,k,p,n;...

Вывод строки
Как сделать вывод строки &quot;Привет&quot; таким образом: П По При Прив Приве Привет

Вывод строки
Всем привет! Такой вот вопрос: почему при выводе строки в конце печатаются какие-то непонятные...

17
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
10.01.2010, 00:01 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void main()
{
  char str[125];
  cout << "vvedite stroku: " ;
  cin >> str;
  
  cout<<"stroka posle :  " ;
 
  for(int i = strlen(str) - 5; i < strlen(str); i++)
    cout << *(str+i);
 
  getch();
}
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 00:22  [ТС] 3
Спасибо! я так понимаю вся проблема в моем коде была в том , что не была определена длина строки?
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
10.01.2010, 00:44 4
либо
C++
1
2
char s[size];
       std::cin >> s;
либо
C++
1
char *s = "HELLO WORLD";
но не
C++
1
2
char *s;
       std::cin >> s;
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
10.01.2010, 01:48 5
Цитата Сообщение от dmitryz Посмотреть сообщение
Спасибо! я так понимаю вся проблема в моем коде была в том , что не была определена длина строки?
В принципе можно считать, что так.
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 02:47  [ТС] 6
Вывести на экран строку, начиная с последнего символа.



насколько я понимаю это делается через указатели))но вот как не знаю
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
10.01.2010, 02:59 7
Цитата Сообщение от dmitryz Посмотреть сообщение
Вывести на экран строку, начиная с последнего символа.



насколько я понимаю это делается через указатели))но вот как не знаю
C++
1
2
3
4
char s[] = "abcde";
char *p = s + strlen(s) - 1;
for(; p >= s; p--)
    std::cout << *p;
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 03:14  [ТС] 8
Цитата Сообщение от Gravity Посмотреть сообщение
C++
1
2
3
4
char s[] = "abcde";
char *p = s + strlen(s) - 1;
for(; p >= s; p--)
    std::cout << *p;





СПАСИБО!!! а как она работает..не могли бы вы объяснить, хотя бы вкратце.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
10.01.2010, 03:29 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
using namespace std;
 
// Вывести на экран последние 5 символов заданной строки.
int main(){
    char str[128];
    size_t len;
    
    cout << "String: ";
    cin >> str;
    if ( ( len = strlen(str) ) < 5 ){
        cout << "Too short!" << endl;
        return 1;
    }
    cout << "Last 5 characters: " << (char*)( str + len - 5 ) << endl;
    return 0;
}
Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstring>
 
using namespace std;
 
// Вывести на экран строку, начиная с последнего символа.
int main(){
    char str[128];
    int len;
    
    cout << "String: ";
    cin >> str;
    for ( len = strlen(str) - 1; len >= 0; --len )
        cout << (char)str[len];
    cout << endl;
    return 0;
}
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 03:32  [ТС] 10
Цитата Сообщение от easybudda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
using namespace std;
 
// Вывести на экран последние 5 символов заданной строки.
int main(){
    char str[128];
    size_t len;
    
    cout << "String: ";
    cin >> str;
    if ( ( len = strlen(str) ) < 5 ){
        cout << "Too short!" << endl;
        return 1;
    }
    cout << "Last 5 characters: " << (char*)( str + len - 5 ) << endl;
    return 0;
}
Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstring>
 
using namespace std;
 
// Вывести на экран строку, начиная с последнего символа.
int main(){
    char str[128];
    int len;
    
    cout << "String: ";
    cin >> str;
    for ( len = strlen(str) - 1; len >= 0; --len )
        cout << (char)str[len];
    cout << endl;
    return 0;
}
Благодарю.Очень помог
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
10.01.2010, 03:34 11
Цитата Сообщение от dmitryz Посмотреть сообщение
а как она работает..не могли бы вы объяснить, хотя бы вкратце.
Ставим указатель на конец строки, затем посимвольно смещаем его к началу, попутно выводя то, на что он указывает.
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 03:53  [ТС] 12
Цитата Сообщение от Gravity Посмотреть сообщение
Ставим указатель на конец строки, затем посимвольно смещаем его к началу, попутно выводя то, на что он указывает.
отлично!!теперь понял)

Добавлено через 18 минут
Задача:посчитать количество пробелов в заданной строке.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vcl.h>
#include <conio.h>
#include<iostream.h>
 
void main()
{
char str[125];
cout<<"vvedite stroku: " ;
cin>>str;
int b=0;
for(int i=0;i<strlen(str);i++)
{
if (*(str+i)=='a')
{
b++;
}
}
cout<<"koli4estvo a : "<<b;
getch();
}


как посчитать пробелы...потому что если ставить вместо 'a' , ' '. то он считает неправильно
0
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
10.01.2010, 04:06 13
Цитата Сообщение от dmitryz Посмотреть сообщение
cin>>str;
У тебя популярная ошибка, когда строку считывают через cin, в этом случае чтение идет до первого пробела.
Для ввода char-строки поставь cin.get(str, sizeof(str)).
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 04:10  [ТС] 14
Цитата Сообщение от Gravity Посмотреть сообщение
У тебя популярная ошибка, когда строку считывают через cin, в этом случае чтение идет до первого пробела.
Для ввода char-строки поставь cin.get(str, sizeof(str)).
Спасибо.Очень выручаешь)
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 05:31  [ТС] 15
Вывести на экран заданную строку, но без чисел и гласных букв.



Каким образом из строки можно удалить все гласные буквы и числа, кроме как прописывать каждый символ руками в коде(ASCII использовать нельзя)?

Также надо учитывать заглавные буквы
и русский алфавит желательно



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 <vcl.h>
#include <conio.h>
#include<iostream.h>
 
void main()
{
char str[125];
cout<<"vvedite stroku: " ;
cin.get(str, sizeof(str));
cout<<"stroka posle:";
for(int i=0;i<strlen(str);i++)
{
if (*(str+i)!='1')
if (*(str+i)!='2')
if (*(str+i)!='3')
if (*(str+i)!='4')
if (*(str+i)!='5')
if (*(str+i)!='6')
if (*(str+i)!='7')
if (*(str+i)!='8')
if (*(str+i)!='9')
if (*(str+i)!='0')
if (*(str+i)!='a')
if (*(str+i)!='q')
if (*(str+i)!='e')
if (*(str+i)!='y')
if (*(str+i)!='u')
if (*(str+i)!='i')
if (*(str+i)!='o')
cout<<*(str+i);
}
getch();
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
10.01.2010, 05:56 16
Цитата Сообщение от dmitryz Посмотреть сообщение
и русский алфавит желательно
Это Вы уж сами как-нибудь
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int isVowel(int c){
    static char vowels[] = "AEIOU";
    return ( strchr(vowels, toupper(c)) != NULL );
}
 
int main(void){
    char buf[BUFSIZ], *p;
    printf("String: ");
    if ( !fgets(buf, BUFSIZ, stdin) )
        exit(1);
    for ( p = buf; *p; ++p )
        if ( !isVowel(*p) && !isdigit(*p) )
            putchar(*p);
    exit(0);
}
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
10.01.2010, 16:42  [ТС] 17
ВСЕМ ОГРОМНОЕ СПАСИБО!!!
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 27
13.02.2010, 01:44  [ТС] 18
Спасибо всем большое!Я сдал экзамен и C++ для меня закончился!!
0
13.02.2010, 01:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2010, 01:44
Помогаю со студенческими работами здесь

Строки, вывод '*\'
Выводит только слеш, звездочку не выводит, как это починить? string str =...

Вывод строки символов
Я ввожу строку символов в функции get_string. Хочу вывести в main. Почему не выводит? Заранее...

Вывод из строки в файл
Уважаемые знатоки у меня к вам несколько вопросов по программе.. #include&lt;iostream&gt;...

Вывод командной строки
Как вывести на экран копию командной строки! Надо это как-то сделпть с аргументами функции main


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

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