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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.04.2013, 16:42   #1
majuw
Пользователь
 
Регистрация: 04.04.2013
Сообщений: 77
По умолчанию задача на Си строки

Дано массив слов , в каждному слове от 1 до 8 малых латинских букв.вывести те слова которые есть одним ис слов 'a','ab','abc'.
Вот код.Пишет что strstr перегруженная
#include "stdafx.h"
#include "string.h"


void main()
{char s[255]="dsa absdr ";
char s2[255]; memset(s2,0,255);
for(char *c=strtok(s," ");c;c=strtok(0," ")){
if(strlen(c)>strlen(s2)){
strcpy(s2,c);
printf ("vuvod stroki=%s\n",s2);
}
}

{if (strstr(s2,'a') || strstr(s2,'ab') || strstr(s2,'abc'))
printf ("vuvod stroki=%s\n",s2);

}

}
majuw вне форума
Старый 07.04.2013, 17:18   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Во-первых, кросспостить (создавать одинаковые темы) запрещено.
Во-вторых, попробуйте:
Код:
if (strstr(s2,"a") || strstr(s2,"ab") || strstr(s2,"abc"))
В-третьих, не забывайте о кнопочке Решетка для оформления кода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума
Старый 07.04.2013, 17:25   #3
majuw
Пользователь
 
Регистрация: 04.04.2013
Сообщений: 77
По умолчанию

спасибо , можно вопрос ,почему не получаеться задача? Помогите пожалуйста.
majuw вне форума
Старый 07.04.2013, 17:40   #4
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Что-то не пойму смысла такой конструкции..
Код:
if (strstr(s2,"a") || strstr(s2,"ab") || strstr(s2,"abc"))
Если "a" есть в строке, то первая же функция вернет, ну, скажем, истину.. Тогда два остальных выражения в условном операторе просто вычисляться не будут.
Если "a" нет, то не может быть и "ab" и "abc".
Μολὼν λαβέ
alexander13 вне форума
Старый 07.04.2013, 17:44   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include "stdafx.h"
#include "string.h"

void
main()
{
    char s[255] = "dsa absdr bebe";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (strstr(pch, "abc") || strstr(pch, "ab") || strstr(pch, "a"))
            printf ("%s\n", pch);
        pch = strtok (NULL, " ");
    }
    return 0;
}
alexander13, согласен.
Честно говоря, я задание не понял
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума
Старый 07.04.2013, 17:51   #6
majuw
Пользователь
 
Регистрация: 04.04.2013
Сообщений: 77
По умолчанию

Огромное Вам спасибо.
majuw вне форума
Старый 07.04.2013, 18:08   #7
majuw
Пользователь
 
Регистрация: 04.04.2013
Сообщений: 77
По умолчанию

Блин.. вот правильное условие Дано массив слов , в каждному слове от 1 до 8 малых латинских букв.вывести те слова префикс которых есть одним ис слов 'a','ab','abc'...Помогите что сдесь нужно поменять?
#include "stdafx.h"
#include "string.h"

void
main()
{
char s[255] = "dsa absdr bebe";
char *pch = strtok (s, " ");
while (pch != NULL)
{
if (strstr(pch, "abc") || strstr(pch, "ab") || strstr(pch, "a"))
printf ("%s\n", pch);
pch = strtok (NULL, " ");
}
return 0;
}
majuw вне форума
Старый 07.04.2013, 18:23   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Ну используйте, наконец, кнопочку Решетка для оформления кода
Код:
#include "stdafx.h"
#include "string.h"

void
main()
{
    char s[255] = "dsa absdr bebe";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (pch == strstr(pch, "abc") || pch == strstr(pch, "ab") || pch == strstr(pch, "a"))
            printf ("%s\n", pch);
        pch = strtok (NULL, " ");
    }
    return 0;
}
Хотя, с таким условием проще:
Код:
#include "stdafx.h"
#include "string.h"

void
main()
{
    char s[255] = "dsa absdr bebe";
    char *pch = strtok (s, " ");
    while (pch != NULL)
    {
        if (pch[0] == 'a')
            printf ("%s\n", pch);
        pch = strtok (NULL, " ");
    }
    return 0;
}
UPD
Пожалуйста
Второй аккаунт?)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 07.04.2013 в 18:37.
BDA вне форума
Старый 07.04.2013, 18:27   #9
constant94
Заблокирован
 
Регистрация: 07.04.2013
Сообщений: 9
По умолчанию

Простите. буду использовать , огромное спасибо.
constant94 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача 1-реализована.Задача 2-Найти и вывести символы 2-ой строки не совпавшие с символами 1-ой строки Leshkin Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.11.2013 08:57
задача на строки (СИ) Александрq Помощь студентам 1 11.02.2013 05:31
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Задача на строки Sweety Помощь студентам 1 23.05.2009 01:44
Задача на строки LaSeule Помощь студентам 2 31.01.2009 00:54