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;
}
[C] Вывод строк, которые заканчиваются на «ED»
Код:
#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;
}
#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;
}
Пытался написать задачу лабораторки но чет не работает((
Подскажите плз что не правильно!
Уловие : Напишите программу, которая вводит ряд строк и выводит те из них, которые заканчиваются на «ED».
Код:
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;
}
{
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" заканчиваются=((
Но все равно пасиб
printf ("%s\n",str);
ты бы скобки поставил под if'ом! зачем тебе printf понадобился? или хотя бы убери puts...
Еще раз пасиб!
Код:
//...........................
if( n >= 2 && strcmp(&str[n-2],"ED")==0)
puts(str); [COLOR="SeaGreen"]// выводим предложения, которые заканчивается на ЕД[/COLOR]
printf ("%s",str); [COLOR="#2e8b57"]//а это ты добавил еще одну функцию вывода, она не относится к if и поэтому выводит все предложения подряд.[/COLOR]
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].
Насчет puts. Мы эту функцию еще не учили. Мы printf пользуемся, поэтому я не знал что он делает)) Большое те спасибо)
я при вводе слов вводил с маленькой буквы - поэтому и не работало)
Код:
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')
Пасиб еще раз)