Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
soprado1
3 / 3 / 3
Регистрация: 26.10.2015
Сообщений: 22
1

Вывести результат в новую строку

05.12.2015, 00:56. Просмотров 275. Ответов 3
Метки нет (Все метки)

Здравствуйте, возник вопрос по строкам. Как мне вывести найденные слова не просто на экран, а в новую строку и только после этого на экран?)
Задача такая : найти слова в которых встречается буква А и вывести их в новую строку.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h> 
#define DELIM " \t\n"
#define N 80
#define M 80
int main(void) {
    char s[N], * p,m[M],i;
    
    printf("Введите строку: ");
    fgets(s, N, stdin);
     (*s != '\n') ? printf("‘Строка после обработки: ") : printf("Вы ничего не ввели ");
        for ( p = strtok(s,DELIM); p; p = strtok(NULL,DELIM ) )
        {
            if ( strchr(p, 'A')|| strchr(p, 'a'))
                 printf("%s ",p);
        }      
    system("pause>>0");  
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2015, 00:56
Ответы с готовыми решениями:

Удалить все вхождения символа C из строки S и записать результат в новую строку T
Пользователь вводит с клавиатуры строку S и символ C. Требуется удалить все вхождения символа C из...

Заменить первую последовательность символов 'т.ч.' на 'так что' и вывести новую строку
Пожалуйста, помогите составить программу в Borland C 3.1: Дана символьная строка. Заменить первую...

Ввести строку символов. Удалить из строки все символы, не являющиеся цифрами. Результат вывести на экран.
Задача 1. Ввести строку символов. Удалить из строки все символы, не являющиеся цифрами. Результат...

Вывести новую строчку, в которой вывести все слова, не похожие на последнее
условие задания типо в строчке 2-30 слов, в слове 2-10 букв, надо вывести новую строчку, в которой...

Составить новую строку из букв от А до J
Добрый вечер. Помогите с программой, заранее спасибо. Дана строка символов (введена с...

3
Nazichok
1 / 1 / 1
Регистрация: 19.11.2015
Сообщений: 6
05.12.2015, 02:17 2
Попробуй через lstrcat добавлять нужные слова в строку
1
Геомеханик
807 / 610 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
05.12.2015, 13:54 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <malloc.h>
static size_t words_st(const char* s, const char* cs, char* d);
char*  find_words(const char* s, const char* cs);
 
int main(void){
    char s[] = "ADA, lisp, ocean, (match) sea, spy, lake, ALGOL";
 
    char* p = find_words(s, "Aa");
    if(p != NULL){
        puts(p);
        //...
        free(p);
    }
    return 0;
}
 
char* find_words(const char* s, const char* cs){
    char*  p;
    size_t n = words_st(s, cs, NULL);
    if(! n)
        return NULL;
 
    p = (char*)malloc((n + 1) * sizeof(char));
    if(p != NULL)
        words_st(s, cs, p);
    return p;
}
 
static size_t words_st(const char* s, const char* cs, char* d){
    size_t n = 0, k = 0, i = 0;
    do {
        if(isalpha(*s)){
            ++k;
            if(! i){
                if(strchr(cs, *s) != NULL)
                    i = 1;
            }
        } else if(k > 0){
            if(i){
                if(d == NULL)
                    n += k + 1;
                else {
                    strncpy(d, s - k, k);
                    d   += k;
                    *d++ = ' ';     
                }
            }
            k = i = 0;
        }
    } while(*s++ != '\0');
 
    if(d != NULL)
        *d = '\0';
    return n;
}
Пример работы кода
1
soprado1
3 / 3 / 3
Регистрация: 26.10.2015
Сообщений: 22
05.12.2015, 14:06  [ТС] 4
Спасибо,но в итоге сделал все таки через strncat
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <string.h>
#include <Windows.h> 
#define DELIM " \t\n"
#define N 80
#define M 80
int main(void) {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char s[N], * p,m[M],i; 
    printf("Введите строку: ");
    fgets(s, N, stdin);
     (*s != '\n') ? printf("Новая строка: ") : printf("Вы ничеего не ввели ");
        for ( p = strtok(s,DELIM); p; p = strtok(NULL,DELIM ) )
        {
            if ( strchr(p, 'A')|| strchr(p, 'a') || strchr(p, 'а') || strchr(p, 'А'))
                 strcat(m ,p);
                 strcat(m," ");  
                         
        }
    puts(m); 
    free(p);
    return 0;
}
0
05.12.2015, 14:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2015, 14:06

Fprintf не записывает новую строку в файл
Вот собственно реализация двух функций #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt;...

\n не переводит новую строку после цикла while
Есть рабочая программа, которая проверяет условие не убывания цифр в числе. Для того, чтобы...

Скопировать 10 символов заданной строки в новую строку
Задать строку из 11 символов. Скопировать 10 символов этой строки в новую строку. Результат вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.