LINUX.ORG.RU

Пронумеровать каждый элемент массива типа string


0

0
Я только учусь, прошу не пинать. Задача стоит такая: создать массив типа string из 200 элементов, и пронумеровать каждый от 1 до 200. Сразу пришло в голову создать при помощи цикла массив типа int и в цикле пронумеровать каждый элемент:
int netmask[200];
for ( int index = 0; index < 199; index++ ){
netmask[index] = index; }
Затем я создал еще один массив типа string и в этом же цикле начал копировать содержимое из массива типа int в string:
string netmask2[200];
int netmask[200];
for ( int index = 0; index < 199; index++ ){
netmask[index] = index;
netmask2[index]= netmask[index]; }
В итоге в содержимом массива netmask 2 я получаю ерунду:
|
}
~



Помогите решить проблему. Спасибо.

Перемещено JB из Talks
anonymous
Ответ на: комментарий от anonymous
тссс.. топикстартер может узнать, что кроме Цы еще есть языки

// ик

anonymous
()
я конечно прозреваю в опе тролля, но ему срочно нужно дописать (char) кое-куда и потом свалить в development

// ик

anonymous
()
Ответ на: комментарий от mono
хотя не сработает.. но думаю логику понял.
mono ★★★★★
()
>netmask[index] = index;

Это труЪ! =)))

А может просто запихать строки в массив и на этом остановиться? Индексы массива не будут являться той самой "нумерацией", не?

MYMUR ★★★★
()
Нумерование какой-то зэковщиной отдаёт :( Почему бы им человеческие имена всем не дать?
anonymous
()
Ответ на: комментарий от MYMUR
мы эту задачу успеем обсудить раньше, чем топикстартер понять её.
anonymous
()
> Помогите решить проблему. Спасибо.

#!/usr/bin/runhaskell

makeLines count = [ "line " ++ show n | n <- [1..count] ] enumerate list = zip [1..] list

main = print $ enumerate $ makeLines 200

anonymous
()
Ответ на: комментарий от anonymous
Чертово форматирование... Вот:

#!/usr/bin/runhaskell

makeLines count = [ "line " ++ show n | n <- [1..count] ]
enumerate list = zip [1..] list

main = print $ enumerate $ makeLines 200
anonymous
()
# -*- coding: utf-8 -*- array = u'Это типа длинный массив символов' for i, symbol in enumerate(array): print i, symbol
anonymous
()
Ответ на: комментарий от anonymous
Чертово форматирование, вот:

# -*- coding: utf-8 -*-
array = u'Это типа длинный массив символов'
for i, symbol in enumerate(array):
    print i, symbol
anonymous
()
Ответ на: комментарий от cobold
блин прочитай внимательно условие задачи. пусть топикстартер и бредово описал условие, но ясно, что он хотел.

Условие следует воспринимать как:

создать массив типа string из 200 элементов, и s/пронумеровать каждый от 1 до 200/присвоить каждому элементу массива строковое значение, соответствующее его индексу в массиве/.

топикстартер, используй функцию itoa (#include <stdlib.h>):

char* netmask[200];

for(int index = 0; index < 200; index++)

{

itoa(index, netmask[index], 10);

}

anonymous
()
Ответ на: комментарий от anonymous
 string netmask[200]; 
 char tmp_buf[3 + 1];
 for(int index = 0; index < 200; index++) 
 { 
   snprintf(tmp_buf, sizeof(tmp_buf), "%.3s", index+1);
   nermask[index] = tmp_buf;
 }
anonymous
()
Ответ на: комментарий от anonymous
s/\.3s/\.3d/. ну и .3 можно убрать :)
anonymous
()
#include <string>
#include <iostream>
#include <sstream>

int main(int, char **)
{
    std::string a[200];

    for(int i = 0;i < 200;i++)
    {
        std::stringstream str;
        str << i;
        a[i] = str.str();
    }

    for(int i = 0;i < 200;i++)
        std::cout << a[i] << std::endl;

    return 0;
}
alex_custov ★★★★★
()
#!/usr/local/bin/tcc -run 

#include <stdio.h> 
#define len (3+1) 

int main(void) {

    char* netmask[200];
    char buf[200*len];
    int index;

    for(index = 0; index < 200; index++)
    {
        netmask[index] = buf + index*len;
        snprintf(netmask[index], len, "%i", index+1);
        printf("index=\t%s\n",netmask[index]);
    }

    return(0);
}
koTuk
()
Ответ на: комментарий от anonymous
>топикстартер, используй функцию itoa (#include <stdlib.h>)

itoa() в Unix нет.

php-coder ★★★★★
()
Ответ на: комментарий от anonymous
На башорг - вместе с постановкой задачи. А заодно на emo_coders и daily_wtf...
svu ★★★★★
()
Ответ на: комментарий от anonymous
-itoa(index, netmask[index], 10);
+itoa(index+1, netmask[index], 10);
MYMUR ★★★★
()
Ответ на: комментарий от alex_custov
Очаровательно.

cat ./BoZo.cc
#include <string>
#include <iostream>
#include <sstream>

int main(int, char **)
{
std::string a[200];
for(int i = 0;i < 200;i++)
{
std::stringstream str;
str << i;
a[i] = str.str();
}
for(int i = 0;i < 200;i++)
std::cout << a[i] << std::endl;

return 0;
}

[absurd@karlstein BoZo]$ gcc -O3 ./BoZo.cc -o BoZo2
BoZo.cc:(.text+0x1e): undefined reference to `std::ios_base::Init::Init()'
/tmp/ccNjHuPE.o: In function `main':
BoZo.cc:(.text+0x8a): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
BoZo.cc:(.text+0xe1): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
BoZo.cc:(.text+0xee): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
BoZo.cc:(.text+0x110): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
BoZo.cc:(.text+0x11d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
BoZo.cc:(.text+0x137): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
BoZo.cc:(.text+0x143): undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x14b): undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x157): undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x163): undefined reference to `vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x17e): undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >'
BoZo.cc:(.text+0x183): undefined reference to `std::locale::~locale()'
BoZo.cc:(.text+0x18d): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x19f): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x1b3): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x1bf): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x1d6): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x1f2): undefined reference to `vtable for std::basic_ios<char, std::char_traits<char> >'
BoZo.cc:(.text+0x1f7): undefined reference to `std::ios_base::~ios_base()'
BoZo.cc:(.text+0x210): undefined reference to `std::ios_base::ios_base()'
BoZo.cc:(.text+0x217): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x21e): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x276): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x2c0): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
BoZo.cc:(.text+0x2c7): undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
/tmp/ccNjHuPE.o:BoZo.cc:(.text+0x2f3): more undefined references to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >' follow
[Несколько килобайт покоцано]
Absurd ★★★
()
Ответ на: комментарий от Uncle_Theodore
>А если компилировать командой g++ вместо gcc? Прога, типа, на плюсах, да? :)

Да, млин, промахнулся - у меня там же вариант BoZo.c.

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.