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

Пределать программу работы с символами - C++

Восстановить пароль Регистрация
 
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 15:22     Пределать программу работы с символами #1
Приветствую, возникла проблемка.. знаю как работать со строками и сделал программу выполняющую необходимые условия.. но оказалось нужно сделать без использования strings strcpy и тд элементов работы со строками, через циклы.....
Задание:добавить цифру один в начало и конец строки "3456", тоесть чтобы получилось "134561".
Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
     char str1[] = "3456";
     char str2[] = "1";
     char str3[] = "1";
     cout << "Pervono4alnya stroka - "<< str1 <<"\n\n";
     cout << "Dobavlenie v na4alo stroki chisla  - \n";
     strcat (str2, str1);
     cout << str2 <<"\n\n";
     cout << "Dobavlenie v konets stroki chisla  - \n";
     strcat (str2,str3);
     cout << str2 <<"\n\n";
     system("pause");
}
Может кто помочь?

Добавлено через 30 минут
Может быть какието соображения какието есть у кого? Я сам пока немогу сообразить.. но так думаю это нада делать как с массивом, добавить в конец новый символ. А вот в начало как? =)
И хотелось бы пример...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
15.12.2011, 16:10     Пределать программу работы с символами #2
Muska,ну если делать для твоего примера, то будет так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
 
int main()
{
    char str1[] = "3456",c='1';
    int i;
    for (i=4;i>=0;i--)
        str1[i+1]=str1[i];
        
    str1[0]=c;
    str1[5]=c;
    for (i=0;i<=5;i++)
        printf("%c",str1[i]);
    getch();
    return 0;
}
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
15.12.2011, 16:21     Пределать программу работы с символами #3
Цитата Сообщение от Ropsat Посмотреть сообщение
char str1[] = "3456"
sizeof( str1 ) == 5 (четыре символа + нуль-терминатор)

Цитата Сообщение от Ropsat Посмотреть сообщение
for (i=4;i>=0;i--) str1[i+1]=str1[i];
Здесь происходит выход за пределы памяти массива.

Добавлено через 53 секунды
C
1
char str1[6] = "3456"; // теперь есть место для сдвига
Добавлено через 1 минуту
там ещё нуль-терминатор в конце выставить надо

Добавлено через 2 минуты
Короче:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main( int argc, char ** argv )
{
   char buffer[8];
   const char * str = "3456";
   int i;
   
   buffer[0] = '1';
 
   for( i = 1; i < 5; i++ )
      buffer[i] = str[i - 1];
 
   buffer[5] = '1';
   buffer[6] = 0;
   
   puts( buffer );
   
   return 0;
}
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
15.12.2011, 16:24     Пределать программу работы с символами #4
talis, спасибо што поправили
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 16:35  [ТС]     Пределать программу работы с символами #5
Да совсем по другому.....
И как видно, куда удобнее делать со строками...

Спасибо !
Yandex
Объявления
15.12.2011, 16:35     Пределать программу работы с символами
Ответ Создать тему
Опции темы

Текущее время: 20:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru