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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.