Форум программистов, компьютерный форум, киберфорум
Наши страницы

Массив символов в структуре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление элемента массива http://www.cyberforum.ru/cpp-beginners/thread108140.html
Здравствуйте. Необходимо удалить из массива А(20) первый отрицательный элемент,при этом ввод элементов массива необходимо осуществить с клавиатуры. Язык - С.
C++ Побитовый сдвиг массива Есть двумерный массив int massiv;Нужно сдвинуть первый элемент массива в конец, а все остальные соответственно вперед. В цикле это можно сделать так int temp0=0; int temp1=0; int n=0; for(int... http://www.cyberforum.ru/cpp-beginners/thread108130.html
Найти минимум среди сумм элементов диагонали матрицы, параллельных побочной диагонали C++
Пожалуйста, помогите решить задачку Дана целочисленная прямоугольная матрица. определить: 1) колво строк, не содержащих ни одного четного элемента; 2) минимум среди сумм элементов диагонали,...
найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением C++
Проверьте пожалуйста, почему все средние значения (второй массив) одинаковы Задание: найти в массиве непрерывный участок из 10 чисел с наибольшим средним значением #include <iostream.h>...
C++ microsoft agent как запустить в C++ http://www.cyberforum.ru/cpp-beginners/thread108065.html
дайте пожалуйста исходник , ил просто код как запустить персонажа из microsoft agent на языке С++ Добавлено через 19 часов 3 минуты народ ну попомиге:(
C++ Что за ошибка??? помогите доделать код #include <iostream> #include <vector> #include <cmath> #include <ctime> #include <algorithm> using namespace std; void out(int n, vector<int> &f1) { подробнее

Показать сообщение отдельно
kravam
быдлокодер
1701 / 888 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
29.03.2010, 18:39
Так а надо ли оно тебе?
Смотри, во первых, CutString возвращает указатель на char, а s.group[i] имеет тип string. Так что ничё не выйдет.

Если ты хочешь все соки выжать из s.group[i], тогда смотри, вот если мы напишем вот так:
s.group[i].str[0] или вот так s.group[i].str[1] так или вот так s.group[i].str[2], то всё будет работать ОК, эти записи корректны (вплоть до s.group[i].str[14], хе, впрочем s.group[i].str[15] тоже сработает, но ну его на фиг)

Теперь смотри, ты возвращаешь адрес на строку. Куда ты реально можешь его запихать? Особых вариантов я не вижу, вышеперечисленные переменные- элементы массива str, имеют тип char (а возвращается, напомню, указател на char).

Так что извини, каким боком массив символов относится к указателю на char, мне непонятно.

А если ты подразумеваешь, что переменная s.group[i].str суть адрес нулевого элемента массива и в эту переменную неплохо было бы вернуть значение, возвращаемое CutString, то вынужден тебя огорчить. Понимаешь, в чём дело, вот это сработает:

C++
1
char* per= s.group[i].str
ТО есть тут всё понятно, переменной per мы присвоили адрес нулевого элемента массива str

Но по этому адресу ты прописать ничего не сможешь потому, что такой переменной (s.group[i].str) просто нет! Памяти для неё не выделено! Вот это просто не сканает:

C++
1
s.group[i].str=  CutString
Ну, я думаю суть ты уловил. Когда s.group[i].str в правой части оператора присваивания, то прога нормально высчитывает адрес нулевого элемента, а когда в левой- извини, нет такой переменной s.group[i].str.

Чё делаем?
Я что-то не могу уловить, почему тебе просто вместо массива не объявить указатель на строку, вот так:
struct string
{
char* str;
};

И с ним не работать? В суть программы не вникал, но вот это сканало бы тогда:
s.group[i].str= CutString(line);

Добавлено через 13 минут
Хм, последний вариант очень даже ничего.
Но если тебе кровь из носа надо, чтобы возвращённая строка размещалась именно в этих 15-ти элементах... Тогда просто скопируй её и всё:
C++
1
2
3
4
5
6
7
8
struct string
{
  char str[15];
};
 
//Код всякий
 
strcpy (s.group[i].str, CutString(line));
...Как говорится, всего, и делов, то.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru