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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2013, 20:37   #1
yurets17
Пользователь
 
Регистрация: 07.10.2013
Сообщений: 15
По умолчанию Преобразовать строку символов в массив

Код:
#include <cstdio>
#include <cctype>
#include <iostream>
#include <cmath>
#include "QTime"
void stuToArr(char s[], int ar[], int&size);
using namespace std;
int main(){
    char s[80];
    int ar [80], size;
    cout<<" Введіть рядок з якого необхідно створити масив:";
    cin>>size;
    cout<<stuToArr(s, ar, size);
}
void stuToArr(char s[], int ar[], int&size)
{
    int i=0; size=0;
    forever {
        while (s[i]='\0'&&!isdigit(s[i]))i++;
        if(s[i]!='\0') return;
        for(ar[size]=0;isdigit(s[i]);i++)
            ar[size]=(ar[size]*10+(s[i])-48);
        size ++;
    }
}
код неверный! вернее функция верная а код главной программы нет! подправьте пожалуйста! нужно в главной функции ввести строку символов, а потом вызвать дополнительную функцию и преобразовать строку в массив символов!
yurets17 вне форума Ответить с цитированием
Старый 29.10.2013, 21:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
потом вызвать дополнительную функцию и преобразовать строку в массив символов!
А можно узнать, зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2013, 21:48   #3
yurets17
Пользователь
 
Регистрация: 07.10.2013
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А можно узнать, зачем?
Зачем создавать массив всмысле?
yurets17 вне форума Ответить с цитированием
Старый 30.10.2013, 09:38   #4
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от yurets17 Посмотреть сообщение
Код:
#include <cstdio>
#include <cctype>
#include <iostream>
#include <cmath>
#include "QTime"
void stuToArr(char s[], int ar[], int&size);
using namespace std;
int main(){
    char s[80];
    int ar [80], size;
    cout<<" Введіть рядок з якого необхідно створити масив:";
    cin>>size;
    cout<<stuToArr(s, ar, size);
}
void stuToArr(char s[], int ar[], int&size)
{
    int i=0; size=0;
    forever {
        while (s[i]='\0'&&!isdigit(s[i]))i++;
        if(s[i]!='\0') return;
        for(ar[size]=0;isdigit(s[i]);i++)
            ar[size]=(ar[size]*10+(s[i])-48);
        size ++;
    }
}
код неверный! вернее функция верная а код главной программы нет! подправьте пожалуйста! нужно в главной функции ввести строку символов, а потом вызвать дополнительную функцию и преобразовать строку в массив символов!
Не много не понял вы вводите только длину массива?! А строку кто за вас вводить будет?
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 30.10.2013, 11:06   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Зачем создавать массив всмысле?
Да. строка символов === массив символов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 12:46   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Stilet

строка символов === массив символов.

так то символов, а ему надо массив интов.

Код:
#include <iostream>
#include <vector>
#include <locale>

std::ostream& operator<< (std::ostream& os, const std::vector<int>& arr)
{
	os << "{ ";
	for (size_t i = 0; i < arr.size(); i++)
		os << arr[i] << " ";	
	return os << "}";
}

std::vector<int> StringToArray(const char* s)
{
	std::vector<int> arr;
	for (; *s; s++)
	{
		if (std::isdigit(*s, std::locale()))
			arr.push_back(*s - '0');
	}

	return arr;
}

int main()
{
	std::locale::global(std::locale(""));
	std::cout << StringToArray("zzz123xxx567yyy") << std::endl;
	return 0;
}
Rififi вне форума Ответить с цитированием
Старый 30.10.2013, 13:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ему надо массив интов.
Цитата:
ввести строку символов, а потом вызвать дополнительную функцию и преобразовать строку в массив символов!
Ппц, я чего то не доганяю...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 13:08   #8
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Stilet

преобразовать строку в массив символов!

ну дык студни часто не понимают чего пишут )))), в коде у него заполняется именно массив интов
Rififi вне форума Ответить с цитированием
Старый 30.10.2013, 13:36   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну это да... Не поспоришь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задана строка символов. Преобразовать эту строку Proskurina Паскаль, Turbo Pascal, PascalABC.NET 1 28.05.2012 09:40
функция получае на вход строку чисел, выводит строку символов DellOleg Microsoft Office Access 2 18.02.2012 11:17
Программа Вводит символьную строку и число N и выводит строку, состоящую из первых N символов (С++) Yulai Помощь студентам 1 11.05.2009 11:39
Дана строка символов.Преобразовать строку,заменив в ней каждую из групп стоящих рядом точек одной точкой V I K T O R I Y A Паскаль, Turbo Pascal, PascalABC.NET 1 03.05.2009 09:56