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

строки и массивы - C++

Восстановить пароль Регистрация
 
FaithSpirit
1 / 1 / 0
Регистрация: 15.11.2010
Сообщений: 17
15.02.2011, 23:48     строки и массивы #1
задание - написать программу, которая удаляет все цифры из строки


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std; 
int main()
{
 char i=0;
 char j=0;
 char S1[255];
 char S2[255];
 cin>>S1;
 for (int i=0; i<strlen(S1);i++)
 if (i>isdigit(S1[i]!=0))
  S2[j]=S1[i];
  j++;
  cout<<S2;
 return 0;
}

нужен второй массив , в который будет записыватся новая строка без цифр.
выдаёт ошибки, нужна помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2011, 23:48     строки и массивы
Посмотрите здесь:

Массивы и строки C++
Массивы и строки C++
C++ Массивы. Строки.
массивы и строки C++
Строки и массивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 00:12     строки и массивы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    char S1[255];
    char S2[255];
    std::cin >> S1;
    int j = 0;
    for(int i = 0; i < strlen(S1); i++)
       if(S1[i] < '0' || S1[i] > '9')
       {
       S2[j]=S1[i];
       j++;
       }
    S2[j] = '\0';
    std::cout << S2;
    std::getchar();
    return 0;
}
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.02.2011, 00:16     строки и массивы #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
 
#define STRING_SIZE 256
 
int main()
{
    int i;
    char src[STRING_SIZE] = "digit1234erase567689";
    char dst[STRING_SIZE] = { 0 };
    char *p = dst;
 
    for(i = 0; i < STRING_SIZE && src[i] != '\0'; ++i) {
        if(!isdigit(src[i])) {
            *p++ = src[i];
        }
    }
 
    printf("source: %s\ndest: %s\n", src, dst);
    return 0;
}
FaithSpirit
1 / 1 / 0
Регистрация: 15.11.2010
Сообщений: 17
16.02.2011, 00:24  [ТС]     строки и массивы #4
Цитата Сообщение от Maxwe11 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    char S1[255];
    char S2[255];
    std::cin >> S1;
    int j = 0;
    for(int i = 0; i < strlen(S1); i++)
       if(S1[i] < '0' || S1[i] > '9')
       {
       S2[j]=S1[i];
       j++;
       }
    S2[j] = '\0';
    std::cout << S2;
    std::getchar();
    return 0;
}
вопрос - почему меньше 0 и больше 9 ???
и ещё , как бы это выглядело с подключённой using namespace std ?
Спасибо.

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
 
#define STRING_SIZE 256
 
int main()
{
    int i;
    char src[STRING_SIZE] = "digit1234erase567689";
    char dst[STRING_SIZE] = { 0 };
    char *p = dst;
 
    for(i = 0; i < STRING_SIZE && src[i] != '\0'; ++i) {
        if(!isdigit(src[i])) {
            *p++ = src[i];
        }
    }
 
    printf("source: %s\ndest: %s\n", src, dst);
    return 0;
}

Это слишком сложно) Но всёравно спс)
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.02.2011, 00:25     строки и массивы #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main(){
    char mas[255], *a=mas;
    int i;
    gets(mas);
    for (i=0; i<strlen(mas); i++, a++){
        if(isdigit(mas[i])) continue;
        else *a=mas[i];
        putchar(*a);
    }
    return 0;
}
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 00:37     строки и массивы #6
Цитата Сообщение от FaithSpirit Посмотреть сообщение
вопрос - почему меньше 0 и больше 9 ???
потому что ASCII коды символов 0...9 не соответсвуют самим цифрам
Escapable
53 / 53 / 1
Регистрация: 09.11.2010
Сообщений: 120
16.02.2011, 01:06     строки и массивы #7
Цитата Сообщение от FaithSpirit Посмотреть сообщение
как бы это выглядело с подключённой using namespace std ?
Прописываем using namespace std; и убираем приписку std::.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2011, 01:48     строки и массивы
Еще ссылки по теме:

Массивы и строки ... C++
массивы, строки с++ C++
C++ Массивы и строки

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.02.2011, 01:48     строки и массивы #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <ctype.h>
 
int main(void){
    char in[BUFSIZ], out[BUFSIZ], * pIn, * pOut;
    
    while ( printf("String: ") && scanf("%[^\n]%*c", in) == 1 ){
        for ( pIn = in, pOut = out; isdigit(*pIn) || ( *pOut++ = *pIn ); ++pIn )
            ;
        printf("Result: %s\n", out);
    }
    
    return 0;
}
Yandex
Объявления
16.02.2011, 01:48     строки и массивы
Ответ Создать тему
Опции темы

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