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

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

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

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

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

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

Вывести слова которые начинаются с одной и той же буквы - C++
как в структуре, вывести слова которые начинаются с одной и той же буквы? можете реализовать это в коде?

Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов. - C++
Помогите, пожалуйста с программой: Вывести на экран слова начинающиеся с той же буквы, что и первое слово введенного предложения....

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

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

Коды символов одной и той же буквы различаются. [help] - C++
тоесть если я делаю cout<<int('а'); где а-русская, он выводит код -32. И так до я -1; а если char c; cin>>c; cout<<int(c) и...

Посчитать количество слов начинающихся с той же буквы, что и первое - C++
Цель программы считать количество слов начинающихся с той же буквы, что и первое. Вроде бы все нормально, но выдает совершенно не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
06.10.2011, 00:19 #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");
}
1
alkagolik
Заблокирован
06.10.2011, 01:06 #3
Mustik, в 23 строке надо так
C++
1
i > StrLength - 1
strlen() захватывает кроме всех символов так же и символ окончания строки '\0'. например строка вида "строка\0" имеет длину в 7 символов, при том, что последний был вписан компилятором.
0
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
06.10.2011, 09:44 #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.
0
alkagolik
Заблокирован
06.10.2011, 09:48 #5
Mustik, да, есть такая буква. осталось найти где я это вычитал, и выкинуть.
0
-=ЮрА=-
Заблокирован
Автор FAQ
06.10.2011, 12:07 #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;
}
0
Миниатюры
Удаление i-той буквы из слова  
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2011, 13:47 #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;
}
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
06.10.2011, 15:48 #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;
}
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.10.2011, 15:53 #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);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 15:53
Привет! Вот еще темы с ответами:

В текстовом файле после каждой 2 буквы вставлять буквы из слова - C++
Подскажите, пожалуйста как на C++ в текстовом файле после, к примеру, каждой 2 буквы вставлять по очереди буквы из слова, например...

Переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец - C++
Привет! Нужно во всех словах строки S переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец. Что-то не как не пойму...

Подсчитать количество слов, начинающихся с той же буквы, что и следующее слово - C++
Ребята, не могу придумать как это сделать, помогите пожалуйста: Подсчитать количество слов начинающихся с той же буквы, что и следующее...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.10.2011, 15:53
Ответ Создать тему
Опции темы

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