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

Как складывать строки или символы через циклы с использованием массивов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Игра пятнашки при нажатии ''4'' неправильно работает http://www.cyberforum.ru/cpp-beginners/thread1156677.html
#include <cstdio> #include <Windows.h> int main(){ /////////////////резервируем память int ** MainArg =new int*; for (int i = 0;i<4;i++) MainArg=new int; ////////////заполняем массив значениями int Number = 1;
C++ Шахматная доска, найти ошибки в коде Здравствуйте, нужно вывести шахматную доску, у меня куча ошибок и я не могу никак сделать // Шахматная доска #include <graphics.h> #include <stdio.h> #include <conio.h> #define PATHTODRIVER "c: WborlandcWbgiW" // шахматная доска void doska() int xO = 100, // координаты левого верхнего угла доски уО = 100; int x,у; // координаты левого верхнего угла клетки http://www.cyberforum.ru/cpp-beginners/thread1156667.html
C++ В прямоугольной матрице определить количество столбцов, которые содержат только числа одного знака
В прямоугольной матрице определить количество столбцов,которые содержат только числа одного знака(положительные или отрицательные) и не содержат нулевых элементов
C++ Преобразования типов. Определить тип переменной
Всем привет Недавно начал изучать язык C++ по книжке "Объектно-ориентированное программирование в C++" и там есть тема (Преобразование типов) вот пример из этой темы: #include <iostream> using namespace std; int main() {
C++ Посчитать сумму четных элементов двумерной матрицы http://www.cyberforum.ru/cpp-beginners/thread1156653.html
Посчитать сумму четных элементов двумерной матрицы МхN сформировать матрицу из случайных чисел и вывести на экран
C++ Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец Составить программу, которая превращает массивы А и В следующим образом: для каждого из них все отрицательные элементы одномерного массива переместить на начало массива, а все положительные - в конец массива с сохранением порядка следования. Инициализацию, вывод элементов массива, их обработку организовать в отдельных функциях. подробнее

Показать сообщение отдельно
colvern
1 / 1 / 0
Регистрация: 08.06.2015
Сообщений: 13
10.06.2015, 22:22     Как складывать строки или символы через циклы с использованием массивов
Приключения со строками продолжаются.
При возникновении некоторого повторяющегося события нужно обрезать строку text[line] находящуюся в массиве строк на один символ и сохранять в том же элементе массива. Код ниже правильно работает только один раз, т.е. при повторном вызове длина text[line] остается неизменной. В чем моя ошибка?
C
1
2
3
4
5
6
7
8
9
10
// объявление переменных
char text[4][21];
memset(text, 0, sizeof(char) * 4 * 21);
char t[21] = "\0";
 
//код, выполняющийся при возникновении события
strncpy(t, text[line], strlen(text[line]) - 1);         
strcat(t, "\0");
strcpy(text[line], t);
//..............
Добавлено через 40 минут
Нашел вот такое рабочее решение:
C
1
2
3
4
5
6
7
8
9
char *substr(const char *baseStr, size_t startPos, size_t len)
{
    char *result = (char *)malloc(len + 1);
    strncpy(result, baseStr + startPos, len);
    result[len] = '\0';
    return result;
}
 
strcpy(text[line], substr(text[line], 0, pos - 1));
Добавлено через 1 час 22 минуты
Применять этот substr нужно правильно вот так:
C
1
2
3
4
char *t;
t = substr(text[line], 0, pos);
strcpy(text[line], t);
free(t);
Иначе возникает утечка памяти.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru