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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
br00k
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 6
#1

В строке скопировать каждый второй символ в конец строки - C++

07.07.2010, 22:09. Просмотров 2349. Ответов 7
Метки нет (Все метки)

есть задача: в строке s скопировать каждый 2й символ в конец строки.
я не могу понять в чем ошибка, либо просто не понял условие
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clrscr();
    char *str, *str2;
    cout<<"Enter string: ";
    cin>>str;
 
        for(int i=0;strlen(str);i++)
            if(str[i]==str[1])
            {
            str2=str2+str[i];
            }
                    else ++i;
          //strcpy(str2,atoi(str[2]));
         //strncat(str2,str,1);
         
                 //return 0;
 
        cout<<"Output string: "<<str2<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2010, 22:09     В строке скопировать каждый второй символ в конец строки
Посмотрите здесь:

Из первой заданной строки удаляется каждый символ, принадлежащий второй заданной строке - C++
Составить процедуру, в результате обращения к которой из первой заданной строки удаляется каждый символ, принадлежащий второй заданной...

В строке символов заменить каждый второй символ s на f - C++
Подскажите,пожалуйста,как в строке символов заменить каждый второй символ s на f

Вывести каждый второй символ строки - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;iostream.h&gt; int main() { char str ,ch,*p_str; int lengthWord, countWord=0; ...

Заменить каждый второй элемент строки на заданный символ - C++
1. Написать и протестировать функцию, которая в строке, передаваемой ей в качестве параметра, заменяет каждый второй элемент на заданный...

Из первой заданной строки удалить каждый символ, принадлежащий второй - C++
Составить процедуру в результате которой из первой заданной строки будет удалятся каждый символ принадлежащий и второй заданной строке

Написать и протестировать функцию, которая в строке, передаваемой ей в качестве параметра, заменяет каждый второй элемент на заданный символ. - C++
помогите ребят!!! вот препод задал мне задачи для зачетной недели, фактически все сделал,кроме этой: &quot;Написать и протестировать функцию,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,423
07.07.2010, 22:45     В строке скопировать каждый второй символ в конец строки #2
Что-то такое

C++
1
2
                for(int i=0; i< strlen(str);i++)
                    if(!(str[i]%2))
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.07.2010, 22:56     В строке скопировать каждый второй символ в конец строки #3
Цитата Сообщение от br00k Посмотреть сообщение
char *str, *str2;
под строки должны быть выделены массивы, как минимум
br00k
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 6
07.07.2010, 23:30  [ТС]     В строке скопировать каждый второй символ в конец строки #4
Цитата Сообщение от kravam Посмотреть сообщение
Что-то такое

C++
1
2
                for(int i=0; i< strlen(str);i++)
                    if(!(str[i]%2))
у меня программа просто виснет...
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
07.07.2010, 23:34     В строке скопировать каждый второй символ в конец строки #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
как-то так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main(){
    std::string buf, tmp;
    
    std::cout << "String: ";
    std::getline(std::cin, buf);
    for ( int i = 1; i < buf.size(); i += 2 )
        tmp += buf[i];
    buf += tmp;
    std::cout << "Result: " << buf << std::endl;
    
    return 0;
}
br00k
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 6
08.07.2010, 00:15  [ТС]     В строке скопировать каждый второй символ в конец строки #6
спасибки тыкнул, но вот задача, у меня то Borlan C 3.1, попробую переделать.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,423
08.07.2010, 01:38     В строке скопировать каждый второй символ в конец строки #7
Цитата Сообщение от br00k Посмотреть сообщение
у меня программа просто виснет...
Если у тебя программа просто виснет, значит, ты должен определить, почему.

Я не могу тебе этого сказать почему, потому, что у тебя несколько ошибок. Виснуть она может по какой угодно проичине, а тебе нужен точный ответ.

А посему:
потренируйся на чём-нибудь простеньком. Попроси разъяснение по каждой строке, если в книге прочесть не можешь.

C++
1
2
3
4
5
                for(int i=0;strlen(str);i++)
                    if(str[i]==str[1])
                    {
                        str2=str2+str[i];
                    }
Это бесконечный цикл, ибо
strlen(str)
Никогда не станет равна нулю. Программа будет выполняться и выполняться. Вотона и виснет. Блин.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2010, 02:26     В строке скопировать каждый второй символ в конец строки
Еще ссылки по теме:

В заданной строке поменять каждый символ строки предыдущим по таблице кодирования символом - C++
Условие : В заданной строке поменять каждый символ строки предыдущим по таблице кодирования символом. Заранее спасибо)

Рекурсия: скопировать первую строку в конец второй - C++
День добрый. Задачка попалась не из лёгких как по мне. Условие вот: Функция принимает две строки. С помощью рекурсии нужно скопировать...

Выводить строку, сокращая каждый раз на 1 символ, пока в строке не останется 1 символ - C++
' Напишите программу, которая вводит строку и выводит её, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ....

Считать каждый второй символ из файла - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string.h&gt; using namespace std; int main() { ...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.07.2010, 02:26     В строке скопировать каждый второй символ в конец строки #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от br00k Посмотреть сообщение
у меня то Borlan C 3.1
Ужос! Зачем он Вам? Вот на С и без проверок переполнения, потому строки лучше делать большого размера (BUFSIZ должно быть вполне достаточно).
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main(void){
    char buf[BUFSIZ], tail[BUFSIZ], * p;
    int i, len;
    
    printf("String: ");
    scanf("%[^\n]%*c", buf);
    p = tail;
    len = strlen(buf);
    for ( i = 1; i < len; i += 2 )
        *p++ = buf[i];
    *p = 0;
    strcat(buf, tail);
    printf("Result: %s\n", buf);
    
    return 0;
}
Yandex
Объявления
08.07.2010, 02:26     В строке скопировать каждый второй символ в конец строки
Ответ Создать тему
Опции темы

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