Форум программистов, компьютерный форум CyberForum.ru

Динамические строки и массивы строк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ файлы http://www.cyberforum.ru/cpp-beginners/thread96968.html
помогите плз кто нить вот задание Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию.Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. я начал делать но что то у меня не получается плз надо срочно исправьте ктонить..!!!!! // hgjfkd.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include...
C++ Строковая переменная Привет всем! Изучаю С++. Ну, проблему кодировки в консольном окне вреде бы решил (работаю в Vicual C++ 2008). Вот такая простенькая программка работает на русском языке: ПК спрашивает "как вас зовут", пользователь отвечает "Вася", в новой строке появляется "Привет, Вася". #include <iostream> #include <string> using namespace std; int main() { string nam; http://www.cyberforum.ru/cpp-beginners/thread96950.html
перевести из Паскаля в Срр C++
Program lab_3; uses CRT; var x,i,min: integer; Begin clrscr; min:=$FFF; for i:=0 to 9 do begin readln(x);
C++ Работа с библиотекой math.h
Задача звучит так: найти f(x) при x=0.7 и остаток от деления f(x) на g(x). Среда Borland C++ 3.1 #include <stdio.h> #include <conio.h> #include <math.h> int main(void) { double x,y,g; float w; printf ("Input x\n"); scanf ("%d",&x);
C++ Определение кол-ва одинаковых цифр в записи целого числа http://www.cyberforum.ru/cpp-beginners/thread96899.html
написать программу которая определяет количество одинаковых цифр в записи целого числа(которое пользователь вводит) вообщем вопрос: как это сделать?
C++ Массивы строк с симболами Дан массив строк n: 1)программа выводит количество строк в которых всречается слово “zima”. 2) программа выводит общее количество быкв “t” во всех строчек. 3) программа выводит общее количество быкв “t” в каждой строчке. 4) программа выводит в скольки строчках всречается буквосочетаний “aka” #include <iostream.h> #include <conio.h> void main() { char S; int x, i, k, t, N; подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
 Аватар для insideone
3619 / 897 / 47
Регистрация: 10.01.2010
Сообщений: 2,420
20.02.2010, 17:54     Динамические строки и массивы строк
2 Sens0 В массиве объем заранее определен поэтому дозаполнить "!" очень легко.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char a[3][10]; // 3 строки по 10 символов
// тут как то заполнили эти строки
// а теперь дозаполним '!'
for (int i = 2; i > 0; i--)
{
   a[i][9] = '\0'; // завершаем строку
   for (int j = 8; j > 0; j--)
   {
      a[i][j] = '!';
      if ( a[i][j] == 0 ) // наткнулись на прошлый конец строки?
          break; // выходим. дальше же нормальная строка и не стоит её портить
   }
}
Если же массив динамический то не понятно... нужно как то перевыделять память для добавления этих "!"? Не пойму

Добавлено через 24 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
 
using namespace std;
 
#define N 3
 
int main()
{
 
    char** strs = new char*[N]; // 3 строки
    int max_i = 0, max_len = 0, cur_len = -1;
    for (int i = 0; i < N; i++)
    {
        string temp;
        getline(cin, temp);
        cur_len = temp.length()+1;
        if ( cur_len > max_len ) { max_len = cur_len; max_i = i; }
        strs[i] = new char[cur_len];
        memcpy(strs[i], temp.c_str(), temp.length()+1);
    }
    for (int i = 0; i < N; i++)
    {
        if ( i == max_i ) continue; // с максимальной строкой ничего не делаем
        string temp = strs[i]; // копируем строку
        delete [] strs[i]; strs[i] = new char[max_len]; // перевыделяем память
        memset(strs[i], '!', max_len);
        strs[i][max_len-1] = '\0';
        memcpy(strs[i], temp.c_str(), temp.length());
    }
return 0;
}
Вот так решилось. Ввел
a
bb
ccc
На выходе
a!!
bb!
ccc
 
Текущее время: 21:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru