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

Масив строк на С - C++

Восстановить пароль Регистрация
 
SerchLebid
1 / 1 / 0
Регистрация: 04.10.2010
Сообщений: 31
05.11.2010, 22:18     Масив строк на С #1
Задача:
есть массив из строк. нужно инвертировать его по строкам. например у нас есть строка1, строка2, строка3, строка4, а надо сделать: строка4, строка3, строка2, строка1. нужно сделать без библиотечных функций на языке С. помогите кто может.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
05.11.2010, 22:31     Масив строк на С #2
C++
1
2
3
4
5
6
7
8
9
char str[n][m];
char tmp[m];
...............
for(int i = 0;i<n-i;i++)
{
      *tmp =*(str[i]);
      *(str[i]) = *(str[n-i]); 
      *(str[n-i])=*tmp;
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.11.2010, 04:42     Масив строк на С #3
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>
 
#define N  3
 
int main(void)
{
    char arr[N][50] = { "abcd", "efgh", "ijkl" };
    int i;
 
    for (i = 0; i < N / 2; i++) {
        int j;
        char tmpline[50];
        for (j = 0; (tmpline[j] = arr[i][j]) != '\0' && j < 50; j++)
            ;
        for (j = 0; (arr[i][j] = arr[N - 1 - i][j]) != '\0' && j < 50; j++)
            ;
        for (j = 0; (arr[N - 1 - i][j] = tmpline[j]) != '\0' && j < 50; j++)
            ;
    }
 
    for (i = 0; i < N; i++)
        printf("%s" "\n", arr[i]);
    
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
06.11.2010, 06:05     Масив строк на С #4
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
#include <stdio.h>
 
void swap(const char ** a, const char ** b){
    const char * c = *a;
    *a = *b;
    *b = c;
}
 
#define ROWS 4
 
int main(void){
    const char * arr[] = { "aaaaa", "bbbbb", "ccccc", "ddddd" }, ** a, ** b;
    int i;
    
    printf("\nBefore:\n");
    for ( i = 0; i < ROWS; ++i )
        printf("%s\n", arr[i]);
    
    for ( a = arr, b = arr + ROWS - 1; a < b; ++a, --b )
        swap(a, b);
    
    printf("\nAfter:\n");
    for ( i = 0; i < ROWS; ++i )
        printf("%s\n", arr[i]);
    
    return 0;
}
Yandex
Объявления
06.11.2010, 06:05     Масив строк на С
Ответ Создать тему
Опции темы

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