Форум: Форум C++Разное
Новые темы: 00
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Откуда берутся каракули(символы после !рим ,тевирП )?
 
 автор: Случайный посетитель   (25.12.2009 в 15:28)   письмо автору
 
 


#include <iostream>
#include <clocale>

using namespace std;

 void foo(char*, int);

int main(void) {

    setlocale(LC_CTYPE, ""); //
    char string[] = { 'П''р''и''в''е''т' ,','' ''м''и''р''!' };
    cout << string << endl;
    int length = sizeof(string) / sizeof(char);
    foo(string, length);
    return 0;
    
}

void foo(char *string, int length){
    char tmp[length];
    for (int i = 0; i < length; ++i){
        tmp[length - i - 1] = *string;
        ++string;
    }
    cout << tmp;
}

  Ответить  
 
 автор: Случайный посетитель   (25.12.2009 в 16:38)   письмо автору
 
   для: Случайный посетитель   (25.12.2009 в 15:28)
 

Не пойму где 1 байт? и откуда опять же каракули

#include <iostream>
#include <clocale>

using namespace std;

 charstroka_naoborot(char*, int);

int main(void) {

    setlocale(LC_CTYPE, "");
    char *string1 = 0; //
    char string[] = { 'с''л''о''в''о' };
    cout << string << endl;
    int length = sizeof(string) / sizeof(char);
    cout << "размер массива string: " << sizeof(string) << " байт" << endl;
    cout << "размер массива string: " << length << " элементов" << endl;
    string1 = stroka_naoborot(string, length);
    cout << "размер массива string1: " << sizeof(string1) << " байт" << endl;
     cout << "размер массива string1: " << sizeof(string1) / sizeof(char) << " элементов" << endl;
    cout << string1 << endl;
    return 0;
    
}

charstroka_naoborot(char *string, int length){
    char *arr = new char[length];
    for (int i = 0; i < length; ++i){
        arr[length - i - 1] = *string;
        ++string;
    }
    return arr;
}

  Ответить  
 
 автор: RED_BULL333   (05.01.2010 в 20:30)   письмо автору
 
   для: Случайный посетитель   (25.12.2009 в 15:28)
 

 
void foo(char*, int);

int main(void)
 {
    setlocale(LC_CTYPE, ""); //
    char string[] = { 'П''р''и''в''е''т' ,','' ''м''и''р''!''\0' };
    cout << string << endl;
    int length = sizeof(string);
    foo(string, length);
    return 0; 
}

void foo(char *string, int length)
{
    char tmp[80];
    int i = 0;
    while( length-- >= 0 )
    {
 tmp[i++] = string[length];
    }
    *(tmp + i) = '\0' ;
    cout << tmp;
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования