Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2012, 11:23   #1
Oleg3
 
Регистрация: 02.08.2012
Сообщений: 9
По умолчанию двумерный массив Си

Добрый день
очень нужна помощь по поводу работы с массивом
1)как искать слово во всех строках а не только в первой
2)как заменить найденное слово в введенном тексте на порядковые числа в алфавите
3)в строк в которой не было найдено слово ввести слово которое искали после 2го слова в строке
(или может есть где-нибудь подобные задания?)
Код:
#include <stdio.h>
#include <string.h>
 
#define MAX 11
#define LEN 80
 
char text[MAX][LEN];
int d[LEN];
char word[LEN];
char w;
int i;
 
int main(void)
{
  register int t, i, j;
 
  printf("exit void str.\n");
 
  for(t=0; t<MAX; t++) {
    printf("%d: ", t);
    gets(text[t]);
    if(!*text[t]) break;              
  }
 
  for(i=0; i<t; i++) {
    for(j=0; text[i][j]; j++) putchar(text[i][j]);
    putchar('\n');
  }
      gets(word);
      if (strstr(*text,word) != NULL)
       printf("The word \"%s\" found\n",word);
          for(int i = 0; i < strlen(word); ++i) ;
             printf("\n%s\n", word);    
             w=strlen(word);
    
             for(i=0;i<w;i++)
    {
         if(word[i]=='a')
                        d[i]=1;
                 if(word[i]=='b')
                        d[i]=2;
                if(word[i]=='c')
                        d[i]=3;
                f(word[i]=='d')
            d[i]=4;
        if(word[i]=='e')
            d[i]=5;
        if(word[i]=='f')
            d[i]=6;
        if(word[i]=='g')
            d[i]=7;
        if(word[i]=='h')
            d[i]=8;
        if(word[i]=='i')
            d[i]=9;
        if(word[i]=='j')
            d[i]=10;
        if(word[i]=='k')
            d[i]=11;
        if(word[i]=='l')
            d[i]=12;
        if(word[i]=='m')
            d[i]=13;
        if(word[i]=='n')
            d[i]=14;
        if(word[i]=='o')
            d[i]=15;
        if(word[i]=='p')
            d[i]=16;
        if(word[i]=='q')
            d[i]=17;
        if(word[i]=='r')
            d[i]=18;
        if(word[i]=='s')
            d[i]=19;
        if(word[i]=='t')
            d[i]=20;
        if(word[i]=='u')
            d[i]=21;
        if(word[i]=='v')
            d[i]=22;
        if(word[i]=='w')
            d[i]=23;
        if(word[i]=='x')
            d[i]=24;
        if(word[i]=='y')
            d[i]=25;
        if(word[i]=='z')
            d[i]=26;
 
    }
    for(i=0;i<w;i++)
        printf("%d ",d[i]);
    printf("\n");
    printf("%s%s\n%S%S\n", d, strcpy(*text,word ));
    return 0;
}
заранее благодарен
Oleg3 вне форума Ответить с цитированием
Старый 02.08.2012, 12:06   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

вместо
Цитата:
Сообщение от Oleg3 Посмотреть сообщение
Код:
         if(word[i]=='a')
                        d[i]=1;
                 if(word[i]=='b')
                        d[i]=2;
                if(word[i]=='c')
                        d[i]=3;
                f(word[i]=='d')
            d[i]=4;
        if(word[i]=='e')
            d[i]=5;
        if(word[i]=='f')
            d[i]=6;
        if(word[i]=='g')
            d[i]=7;
        if(word[i]=='h')
            d[i]=8;
        if(word[i]=='i')
            d[i]=9;
        if(word[i]=='j')
            d[i]=10;
        if(word[i]=='k')
            d[i]=11;
        if(word[i]=='l')
            d[i]=12;
        if(word[i]=='m')
            d[i]=13;
        if(word[i]=='n')
            d[i]=14;
        if(word[i]=='o')
            d[i]=15;
        if(word[i]=='p')
            d[i]=16;
        if(word[i]=='q')
            d[i]=17;
        if(word[i]=='r')
            d[i]=18;
        if(word[i]=='s')
            d[i]=19;
        if(word[i]=='t')
            d[i]=20;
        if(word[i]=='u')
            d[i]=21;
        if(word[i]=='v')
            d[i]=22;
        if(word[i]=='w')
            d[i]=23;
        if(word[i]=='x')
            d[i]=24;
        if(word[i]=='y')
            d[i]=25;
        if(word[i]=='z')
            d[i]=26;
проще
Код:
   d[i] = (int)word[i] - 96;
Хотя, если платят за каждую строчку кода, лучше первый вариант
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 02.08.2012 в 12:13.
Jaguar83 вне форума Ответить с цитированием
Старый 02.08.2012, 12:21   #3
Oleg3
 
Регистрация: 02.08.2012
Сообщений: 9
По умолчанию

да так определенно проще) спс
Oleg3 вне форума Ответить с цитированием
Старый 04.08.2012, 22:28   #4
Oleg3
 
Регистрация: 02.08.2012
Сообщений: 9
По умолчанию

Код:
#include <stdio.h>
#include <string.h>
 
#define MAX 11
#define LEN 80
 
char text[MAX][LEN];
char word[LEN];
 
int main(void)
{
  register int t, i;
  char low;
  char *ptr;
 
  puts("Enter text <exit void str>.");
 
  for(t=0; t<MAX; t++) {
    printf("%d: ", t);
    fgets(text[t], LEN-1, stdin);
    if(strlen(text[t])==1) break;
  }
 
  printf("\nEnter word: ");
  scanf("%s", word);
  puts("");
 
  for(i=0; i<t; i++) {
    if (strstr(text[i], word) != NULL) {
      printf("%s", text[i]);
      printf("\tThe word \"%s\" found\n", word);      
    }
    else {
      if (ptr = strtok(text[i], " ")) printf("%s", ptr);
      if (ptr = strtok(NULL, " ")) {
        printf(" %s ", ptr);
        printf(" <%s>", word);
      }
      while (ptr = strtok(NULL, " ")) printf(" %s", ptr); 
    }
  }
  
  puts("");
  for(i=0; word[i]; i++) {
    low = tolower(word[i]);
    printf("%c[%i]", low, (low>='a'||low<='z')?
                          (low-'a'+1):' ');
      }
  puts("");
  
  return 0;
}
помогите пожалуйста с 2 пунктом в 1м посте
как этот пункт можно сделать?
Oleg3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив,TP ji-had Помощь студентам 0 16.03.2011 17:29
Двумерный массив! Snowwa Паскаль, Turbo Pascal, PascalABC.NET 3 18.12.2010 14:11
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Двумерный массив... slim5 Помощь студентам 2 20.06.2008 23:16