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

Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы) - C++

Восстановить пароль Регистрация
 
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
27.05.2013, 22:06     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы) #1
Посмотрите код все правильно ли??? Задание звучит так, используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы. Где первой лексемой будет код, второй первые три цифры номера, а третьей после четыре цифры. Семь цифр телефона должны обьедин-ся в одну строку операцией конкатенации.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(void)
{
    char line[] = " (555) 555-5555 ", *p;
    int pref, part1, part2;
 
    if ((p = strtok(line, " ()")) != NULL)
        pref = atoi(p);
 
    if ((p = strtok(NULL, " -")) != NULL)
        part1 = atoi(p);
 
    if ((p = strtok(NULL, " ")) != NULL)
        part2 = atoi(p);
 
    printf("[%d][%d][%d]\n", pref, part1, part2);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 22:06     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы)
Посмотрите здесь:

C++ Разбить на лексемы и вывести в обратном порядке
C++ Как разбить на лексемы
C++ String разбить на лексемы
Можно ли разбить строки на слова при strtok и обратиться к нужному слову? C++
C++ Считать из текстового файла информацию начинающую со слова "example" и закачивающуюся числом 555
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
behemoth
 Аватар для behemoth
44 / 30 / 7
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
27.05.2013, 22:35     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы) #2
конкатинации нету жиш. В конце проги ты просто выводишь числа.
имхо самый простой способ:
C
1
2
char x[sizeof(line)];
sprintf(x,"[%d][%d][%d]\n", pref, part1, part2);
можно еще использовать: strcat ;
Илюза19
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 41
27.05.2013, 22:45  [ТС]     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы) #3
behemoth, а можете весь код написать если не трудно я не понимаю(
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
27.05.2013, 23:20     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы) #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string.h>
#include <stdio.h>
 
int main(void)
{
    char telephoneNumber[] = "(111) 222-3333";
    char *currentLexem = strtok(telephoneNumber, "()- ");
    while (currentLexem) {
        printf("- %s\n", currentLexem);
        currentLexem = strtok(NULL, "()- ");
    }
    return 0;
}
Yandex
Объявления
27.05.2013, 23:20     Посмотрите код! (используя функцию strtok, разбить телефонный номер формата (555) 555-5555, введенный как строку, на лексемы)
Ответ Создать тему
Опции темы

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