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

Разделить на два массива - C++

Восстановить пароль Регистрация
 
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57
13.12.2010, 00:30     Разделить на два массива #1
Есть N строк вида:
a1
b2
c3
хочу разделить их на два символьных массива что бы a,b,c в один, а числа в другой.
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
void main()
{
    int N;
    char c[100],t[100];
    scanf ("%d", &N);
    
    for (int i=0;i<N;i++)
    {
        scanf ("%c,%c\n",&c[i],&t[i]);
    }
}
не хочет делить, в чем ошибка? и как это можно сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 00:30     Разделить на два массива
Посмотрите здесь:

C++ Каждый четный элемент двумерного массива нацело разделить на два
Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные C++
Массив длиной 10 разделить на два массива четных и нечетных чисел C++
C++ Разделить массив на два: числа больше пятнадцати и меньше
Разделить файл со списком людей на два по определенному признаку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.12.2010, 00:47     Разделить на два массива #2
два числа вводяться не через запятую а через пробел
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57
13.12.2010, 00:54  [ТС]     Разделить на два массива #3
Crudelis, а если числа вида a1,b2... как такие ввести и разбить на два?
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
13.12.2010, 07:09     Разделить на два массива #4
а если числа вида a1,b2... как такие ввести и разбить на два?
Вводи их как массив символов, а потом разделяй используя isdigit() и isalpha()
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.12.2010, 07:45     Разделить на два массива #5
C
1
    scanf("\t%c%c", &c[i], &t[i]);
C
1
2
    while (i < 100 && scanf("\t%c%c", &c[i], &t[i]) == 2)
        i++;
это если нуль-символ не предполагается, то есть массивы не будут выводиться через printf("%s", c);
иначе границу нужно снизить до 99, а после цикла получившиеся концы обнулить
rrrFer
Заблокирован
13.12.2010, 08:42     Разделить на два массива #6
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
#include <stdio.h>
int main(){
    int n,i;
    char a[100],b[100],c;
 
    scanf("%d",&n);
 
    for(i=0;i<n;i++){
        scanf("%c",&c); //конецй строки
        scanf("%c",&b[i]);
        scanf("%c",&a[i]);
    }
 
    for(i=0;i<n;i++)
        printf("%c",b[i]);
    printf("\n");
 
    for(i=0;i<n;i++)
        printf("%c",a[i]);
    printf("\n");
 
    getchar();
 
    return 0;
}
не подойдет?

Добавлено через 1 минуту
если символы и цифры разделены запятыми:
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
#include <stdio.h>
int main(){
    int n,i;
    char a[100],b[100],c;
 
    scanf("%d",&n);
 
    for(i=0;i<n;i++){
        scanf("%c",&c); //конецй строки
        scanf("%c",&b[i]);
        scanf("%c",&c); //запятая
        scanf("%c",&a[i]);
    }
 
    for(i=0;i<n;i++)
        printf("%c",b[i]);
    printf("\n");
 
    for(i=0;i<n;i++)
        printf("%c",a[i]);
    printf("\n");
 
    getchar();
 
    return 0;
}
Yandex
Объявления
13.12.2010, 08:42     Разделить на два массива
Ответ Создать тему
Опции темы

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