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

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

Войти
Регистрация
Восстановить пароль
 
StudentКГПУ
 Аватар для StudentКГПУ
0 / 0 / 0
Регистрация: 03.05.2011
Сообщений: 57
#1

Удаление i-той буквы из слова - C++

05.10.2011, 21:23. Просмотров 905. Ответов 8
Метки нет (Все метки)

Напишите программу , которая удаляет из слова i - букву( иттую)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 21:23     Удаление i-той буквы из слова
Посмотрите здесь:

Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов. C++
C++ Подсчитать количество слов, которые начинаются с той же буквы, что и последующее слово
Коды символов одной и той же буквы различаются. [help] C++
В текстовом файле после каждой 2 буквы вставлять буквы из слова C++
C++ Слова, в которых встречается первая и последняя буквы предыдущего слова
C++ Вывести слова которые начинаются с одной и той же буквы
C++ Вывести слова в строке ДО слова, у которого одинаковые первая и последняя буквы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
06.10.2011, 00:19     Удаление i-той буквы из слова #2
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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
 
 
using namespace std;
 
int main()
{
    int i;
    char str[255];
    int StrLength;
 
    cin >> str;
    StrLength = strlen(str);
 
    while(1)
    {
        cout << "Kakuyu burvu hotite udalit? (vvedite 'n' dlya vyhoda) ";
        cin >> i;
        if(i == 'n')
            break;
        if(i > StrLength || i <= 0)
        {
            cout << "Netu takoj bukvy" << endl;
            continue;
        }
        memcpy(&str[i - 1],&str[i],--StrLength);
        str[StrLength] = '\0';
        if(StrLength > 0)
            cout << "Rezultat: " << str << endl;
        else
            break;
    }
    system("pause");
}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
06.10.2011, 01:06     Удаление i-той буквы из слова #3
Mustik, в 23 строке надо так
C++
1
i > StrLength - 1
strlen() захватывает кроме всех символов так же и символ окончания строки '\0'. например строка вида "строка\0" имеет длину в 7 символов, при том, что последний был вписан компилятором.
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
06.10.2011, 09:44     Удаление i-той буквы из слова #4
Цитата Сообщение от alkagolik Посмотреть сообщение
Mustik, в 23 строке надо так
C++
1
i > StrLength - 1
strlen() захватывает кроме всех символов так же и символ окончания строки '\0'. например строка вида "строка\0" имеет длину в 7 символов, при том, что последний был вписан компилятором.
Не согласен. Читаем
А именно: The length of a C string is determined by the terminating null-character: A C string is as long as the amount of characters between the beginning of the string and the terminating null character.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
06.10.2011, 09:48     Удаление i-той буквы из слова #5
Mustik, да, есть такая буква. осталось найти где я это вычитал, и выкинуть.
-=ЮрА=-
Заблокирован
Автор FAQ
06.10.2011, 12:07     Удаление i-той буквы из слова #6
Цитата Сообщение от StudentКГПУ Посмотреть сообщение
Напишите программу , которая удаляет из слова i - букву( иттую)
- решил полностью обойтись без функций стандартной библиотеки для работы со строками, ниже С++ код
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
#include <iostream>
#include <conio.h>
using namespace std;
 
//Удаляет из строки символ стоящий в позиции pos
char * StrRemChar(char * s, long pos);
 
int main()
{
    long pos;
    char str[1025];//не более 1024 символов в строке
    do
    {
        std::cout<<"Enter string (less than 1024 chars)\r\n";
        std::cin.getline(str,1024);
        std::cout<<"Enter pos of char to move : ";
        std::cin>>pos;
        getchar();//Ловим '\n' - он потом мешать в getch будет
        std::cout<<StrRemChar(str, pos - 1)<<"\r\n";
        std::cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
//Решил обойтись без функций стандартной библиотеки
char * StrRemChar(char * s, long pos)
{
    //Предостерегаем себя от работы с пустой строкой
    //и некоректного значения pos
    if(s != NULL && *(s + pos) != NULL && -1 < pos)
    if(!*(s + pos + 1))//Если pos - последний символ
        s[pos] = '\0';//Режем строку
    else
    while(*(s + (pos++)))
        s[pos - 1] = s[pos];
    return s;
}
Миниатюры
Удаление i-той буквы из слова  
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2011, 13:47     Удаление i-той буквы из слова #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
void remove(char* s, size_t n)
{
   char *p, *p2;
   for(p = s + n, p2 = s + n + 1; *p2; ++p, ++p2)
      *p = *p2;
   
   *p = 0;
}
 
int main()
{
   char s[256] = "01234";
   
   remove(s, 2);
   
   cout << s <<endl;
}
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
06.10.2011, 15:48     Удаление i-той буквы из слова #8
Цитата Сообщение от Mustik Посмотреть сообщение
memcpy(&str[i - 1],&str[i],--StrLength);
Не вижу смысла применять здесь memcpy, всё намного легче чем кажется.
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <string.h>
 
int main(){
   char buf[7] = "Batman";
   int  n = 2;
   strcpy(buf + n, buf + n + 1);
   puts( buf );
   getchar();
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 15:53     Удаление i-той буквы из слова
Еще ссылки по теме:

Записать в файл слова отличные от последнего предварительно удаляя первые буквы из каждого слова C++
C++ Вывести слова, начинающиеся и заканчивающиеся одной и той же буквой
C++ Посчитать количество слов начинающихся с той же буквы, что и первое
C++ Переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец
Подсчитать количество слов, начинающихся с той же буквы, что и следующее слово C++

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.10.2011, 15:53     Удаление i-той буквы из слова #9
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main()
{
    printf("word: ");
    char str[100500];
    scanf("%s", str);
    
    printf("number of letter: ");
    int i;
    scanf("%d", &i);    
    
    for ( char * p = str + i - 1; *p = *(p+++1) ; );
    
    puts(str);
}
Yandex
Объявления
06.10.2011, 15:53     Удаление i-той буквы из слова
Ответ Создать тему
Опции темы

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