Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C] Вывод строк, которые заканчиваются на «ED»

14K
03 мая 2007 года
61201
31 / / 03.05.2007
Код программы на "C"
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define STRNUM 5

int main()
{
    int i;
    char str [STRNUM] [255];
    for(i=0;i<STRNUM;i++)
    {
       scanf("%s",str );
    }
     printf("\n----------------\n");
    for(i=0;i<STRNUM;i++)
    {
                if(strlen(str) > 2 && strcmp(str  + strlen(str ) - 2,"ED")==0)
                                printf("%s\n",str );
    }
    system("PAUSE");    
    return 0;
}

Пытался написать задачу лабораторки но чет не работает((
Подскажите плз что не правильно!
Уловие : Напишите программу, которая вводит ряд строк и выводит те из них, которые заканчиваются на &#171;ED&#187;.
242
04 мая 2007 года
Оlga
2.2K / / 04.02.2006
Код:
int main()
{
    int i;
    char str [STRNUM] [255];
    for(i=0;i<STRNUM;i++)
    {
       gets(str);
    }
    printf("\n----------------\n");
    for(i=0;i<STRNUM;i++)
    {
      int n = strlen(str);
      if( n >= 2 && strcmp(&str[n-2],"ED")==0)  
          puts(str);
    }
    system("PAUSE");    
    return 0;
}
14K
04 мая 2007 года
61201
31 / / 03.05.2007
Я прописал printf!
Код:
int main()
{
    int i;
    char str [STRNUM] [255];
    for(i=0;i<STRNUM;i++)
    {
       gets(str);
    }
    printf("\n----------------\n");
    for(i=0;i<STRNUM;i++)
    {
      int n = strlen(str);
      if( n >= 2 && strcmp(&str[n-2],"ED")==0)  
          puts(str);
    [COLOR="Red"]      printf ("%s",str);[/COLOR]
    }
    system("PAUSE");    
    return 0;
}

Но программа почему то все равно выводит все строки ,а не те которые на "ED" заканчиваются=((
Но все равно пасиб
242
04 мая 2007 года
Оlga
2.2K / / 04.02.2006
У меня мой код работает. Разницы нет, какую функцию использовать: puts или printf, только если printf, тогда
printf ("%s\n",str);
242
04 мая 2007 года
Оlga
2.2K / / 04.02.2006
ты бы скобки поставил под if'ом! зачем тебе printf понадобился? или хотя бы убери puts...
14K
04 мая 2007 года
61201
31 / / 03.05.2007
Лан пасиб как нить уже сам найду что неправильно!
Еще раз пасиб!
242
04 мая 2007 года
Оlga
2.2K / / 04.02.2006
надеюсь справился. надо было просто убрать лишнюю функцию вывода:
 
Код:
//...........................
 if( n >= 2 && strcmp(&str[n-2],"ED")==0)  
          puts(str); [COLOR="SeaGreen"]// выводим предложения, которые заканчивается на ЕД[/COLOR]
          printf ("%s",str); [COLOR="#2e8b57"]//а это ты добавил еще одну функцию вывода, она не относится к if и поэтому выводит все предложения подряд.[/COLOR]

и зачем было добавлять еще одну функцию вывода? если [COLOR="#8b0000"]puts(str);[/COLOR] не нравится, тогда замени его на [COLOR="DarkRed"]printf ("%s\n",str);[/COLOR].
14K
04 мая 2007 года
61201
31 / / 03.05.2007
Насчет puts. Мы эту функцию еще не учили. Мы printf пользуемся, поэтому я не знал что он делает)) Большое те спасибо)
14K
07 мая 2007 года
61201
31 / / 03.05.2007
еще вопросик! как сделать так чтобы программа не учитывала регистр ?
я при вводе слов вводил с маленькой буквы - поэтому и не работало)
242
07 мая 2007 года
Оlga
2.2K / / 04.02.2006
так:
 
Код:
if( n >= 2 && toupper(str[n-2]) == 'E' && toupper(str[n-1]) == 'D')


или
 
Код:
if( n >= 2 && (str[n-2] | 0x20h) == 'e' && (str[n-1] | 0x20h) == 'd')
14K
07 мая 2007 года
61201
31 / / 03.05.2007
Пасиб еще раз)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог