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

Ваш аккаунт

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

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

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

замена слов в строке в СИ

88K
22 февраля 2015 года
lyuba_9
2 / / 22.02.2015
Здравствуйте, возникла проблема в написание кода.
Нужно написать код программы, пользователь вводит строку со словами и нужно заменит слова с 5 букв на компьютер, а с 4 букв удалить.
Я вот написала код, но проблема в том что у меня вводишь одно слово с 5 или 4 букв и оно заменяется, а если несколько слов то слова не заменяются. Помогите пожалуйста!
Код:
#include <stdio.h>
#include <string.h>
#include <conio.h>
void new_string(char*);

int main()
{
char S[100];
printf ("input word:n");
gets(S);
int i = strlen(S);
if (strlen(S)==4)
{
printf(" ");
}
else
if(strlen(S)==5)
{
printf("компьютер");
}
getch();
return 0;

}
326
22 февраля 2015 года
sadovoya
757 / / 19.11.2005
Если разделитель слов -- пробел, то можно так:
Код:
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <conio.h>

int main () {
    char str[] = "ку-ку ля-ля упса упс ля-ля";
    const char *delim = " ";
    char *p = strtok (str, delim);
    setlocale(LC_ALL, "");
    while ( p ) {
        if ( 4 == strlen(p) ) {
           /* ничего не печатаем */
        } else if( 5 == strlen(p) ) {
            printf("компьютер ");
        }
        else printf ("%s ", p);
        p = strtok (0, delim);
    }

    getch();
    return 0;
}
Ну, ввод строки сами умеете, допишите.
88K
22 февраля 2015 года
lyuba_9
2 / / 22.02.2015
Цитата: sadovoya
Если разделитель слов -- пробел, то можно так:
Код:
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <conio.h>

int main () {
    char str[] = "ку-ку ля-ля упса упс ля-ля";
    const char delim[] = " ";
    char *p = strtok (str, delim);
    setlocale(LC_ALL, "");
    while ( p ) {
        if ( 4 == strlen(p) ) {
            printf("");
        } else if( 5 == strlen(p) ) {
            printf("компьютер ");
        }
        else printf ("%s ", p);
        p = strtok (0, delim);
    }

    getch();
    return 0;
}
Ну, ввод строки сами умеете, допишите.

спасибо огромное, ввод строк доделала всё работает

326
22 февраля 2015 года
sadovoya
757 / / 19.11.2005
Не за что :) Там все-таки экономней заменить на:
 
Код:
...
if ( 4 == strlen(p) ) {
           /* ничего не печатаем */
        } else ...
Я в ответе поправил, но видимо вы успели раньше с первым вариантом.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог