Форум программистов, компьютерный форум CyberForum.ru

Строки (символов) - C++

Восстановить пароль Регистрация
 
Mysterious Light
3578 / 1674 / 217
Регистрация: 19.07.2009
Сообщений: 2,535
Записей в блоге: 16
27.07.2009, 15:13     Строки (символов) #1
Вопрос несколько детский, поэтому как ответ принимаю ссылку на какой-нибудь русскоязыкный сайт с соответствующим содержанием или на Google.ru с приведенным текстом запроса.
Итак, есть три переменные — массивы символов. Необходимо при помощи метода scanf считать три слова. Условия: разрыва строки нет (коды символов 13 и 10), слова разделяются ровно 1 пробелом, после последнего нет ничего.
Я только начал изучать этот язык, прошу помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Messenger of G.
Посланник моего господина
108 / 103 / 8
Регистрация: 02.05.2009
Сообщений: 181
27.07.2009, 15:16     Строки (символов) #2
Решение "в лоб" при помощи чтения символов поочередно и их анализа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include<iostream>
typedef char str[255];
using namespace std;
int main()
{
    str x,y,z={0};
    int a,b,c; a=b=c=0;
    char h;
    do{
        scanf("%c",&h); 
        if(h!=' ')x[a++]=h;
    }while(h!=' '); x[a]='\0';
    do{
        scanf("%c",&h); 
        if(h!=' ')y[b++]=h;
    }while(h!=' '); y[b]='\0';
    scanf("%s",z); for(c=0;z[c]!='\0';++c);
    printf("length(\"%s\")=%d; length(\"%s\")=%d; length(\"%s\")=%d;",x,a,y,b,z,c);
    system("pause");
    return 0;
}
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
27.07.2009, 17:53     Строки (символов) #3
C++
1
2
char str1[100], str2[100], str3[100]
scanf("%s%s%s", str1, str2, str3);
YurA_280784
Заблокирован
27.07.2009, 18:04     Строки (символов) #4
Как раз влоб решение тупо считать 3 строчки и слепить их в одну, вот рабочий 100% код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
#include <stdio.h>
 
char s1[MAX_PATH],s2[MAX_PATH],s3[MAX_PATH];
char str[3*MAX_PATH];
 
void main()
{
    printf("\tEnter input string\r\n");
    scanf("%s%s%s",&s1,&s2,&s3);
    sprintf(str,"%s %s %s",s1,s2,s3);
    printf("\tInput string\r\n");
    printf("%s\r\n",str);
    printf("1 - enter new string\r\n");
    int iParam;scanf("%d",&iParam);
    if(iParam == 1)
        main();
}
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
27.07.2009, 18:26     Строки (символов) #5
Цитата Сообщение от YurA_280784 Посмотреть сообщение
Как раз влоб решение тупо считать 3 строчки и слепить их в одну, вот рабочий 100% код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
#include <stdio.h>
 
char s1[MAX_PATH],s2[MAX_PATH],s3[MAX_PATH];
char str[3*MAX_PATH];
 
void main()
{
    printf("\tEnter input string\r\n");
    scanf("%s%s%s",&s1,&s2,&s3);
    sprintf(str,"%s %s %s",s1,s2,s3);
    printf("\tInput string\r\n");
    printf("%s\r\n",str);
    printf("1 - enter new string\r\n");
    int iParam;scanf("%d",&iParam);
    if(iParam == 1)
        main();
}
Уверен в 100% правильности кода?
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
27.07.2009, 21:10     Строки (символов) #6
А обязательно scanf() использовать ?
Может просто считать строку целиком, а потом разделить ее по пробелам ?
YurA_280784
Заблокирован
28.07.2009, 12:37     Строки (символов) #7
Для ОСОБО ОДАРЁННЫХ типа Alexandoros выкладываю весь проект + скриншот работы + release версию проги!
Миниатюры
Строки (символов)  
Вложения
Тип файла: rar test_118.exe.rar (13.8 Кб, 18 просмотров)
Тип файла: rar test_118.cpp.rar (321 байт, 18 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2009, 14:19     Строки (символов)
Еще ссылки по теме:

C++ Заданы 2 строки. Определить местоположение символа первой строки, который первым не совпал с одним из символов второй
C++ Строки. Определить местоположение символа первой строки, который первым совпал с одним из символов второй
Сформировать строку, считая числа начальной строки соответствующими ASCII-кодами символов результирующей строки C++
C++ Определить местоположение символа первой строки, который первым не совпал с одним из символов второй строки
C++ Дополнить строки знаками "+", чтобы все строки в нем имели длину 80 символов

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

Или воспользуйтесь поиском по форуму:
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
28.07.2009, 14:19     Строки (символов) #8
Да, правильно, меня смутила
scanf("%s%s%s",&s1,&s2,&s3);
вместо
scanf("%s%s%s",s1,s2,s3);

Добавлено через 27 минут 16 секунд
Хотя вот comaeu ругается
warning: argument is incompatible with corresponding format string conversion
Yandex
Объявления
28.07.2009, 14:19     Строки (символов)
Ответ Создать тему
Опции темы

Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru