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

Функция strlen перед вызовом моей функции портит строку в конфигурации Release MS Visual C++ 2013 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сгенерировать заголовочный файл для .lib (созданной в Maple) http://www.cyberforum.ru/cpp-beginners/thread1798375.html
Доброго, форумчане! у меня нет опыта в кодинге на с++ и это мой первый пост) хочется подключить lib файл (созданный в maple) к .net проекту. Основываюсь на этой статье для начало реализовал на vs2010 пример из статьи и открыл в хекс редакторе и обнаружил некоторую закономерность в результате которого я смог написать заголовочный файл к простенькому примеру но с lib от maple все иначе...
C++ Как передать аргументы из командной строки в функцию main(), что программа заработала? (файловый ввод/вывод) Как передать аргументы из командной строки в аргумент int main(int argc, char *argv), что бы заработала это прога: #include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv) { setlocale(LC_ALL, "rus"); if(argc != 2) { cout << "Введите <имя файла>\n"; system("pause"); http://www.cyberforum.ru/cpp-beginners/thread1798359.html
C++ Что нужно знать, чтобы взяли на работу C++-программистом?
всем привет. Я учу С++ уже 10 месяцев. по двум книгам, первую я закончил это Джес либерти 21 день. Вторая Это стивен прата 9 издание упражение и лекции. Я закончил 15 глав из 18. На данный момент я достаточно хорошо понимаю сам язык. Что мне нужно знать чтобы устроиться работать програмистом, какие программы базовые я должен уметь собирать. Я могу собирать связанные списки, стэки и т.д. Но мне...
Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию C++
IP-адрес - это четверка a.b.c.d, где a, b, c, d целые числа из интервала . Требуется написать функции encode и decode: unsigned int encode(const std::string& ipAddress); std::string decode(unsigned int code); Первая функция превращает ай-пи адрес в четырех байтовое число. Функция decode выполняет обратный процесс. Неважно, как написаны функции. Главное, чтобы encode(decode(x)) было...
C++ Определить, является ли число степенью двойки http://www.cyberforum.ru/cpp-beginners/thread1798330.html
По заданному положительному числу n < 2^64 определить, является ли оно степенью двойки. Решение должно иметь сложность O(1). 1 Yes 17 No 1024 Yes Внимание: 64-битные числа нужно хранить в типе unsigned long long
C++ Составить программу формирования данных о книгах: автор, название, год издания, цена Задача: Книжный архив. Составить программу формирования данных о книгах: автор, название, год издания, цена. Организовать выбор книг, изданных за последние 2 года, выдать их на экран, упорядочив по датам издания. Код: #include <iostream> #include <cstdlib> using namespace std; class Book { char author; char title; подробнее

Показать сообщение отдельно
Max_t
2 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 70

Функция strlen перед вызовом моей функции портит строку в конфигурации Release MS Visual C++ 2013 - C++

24.08.2016, 23:45. Просмотров 179. Ответов 3
Метки (Все метки)

Написал функцию RemoveChars, которая убирает символы перевода строки в строке. Если в конфигурации проекта Visual C++ в Microsoft Visual Studio 2013 установлено Debug, проблем нет. Если перед вызовом функции RemoveChars вызывается функция strlen, а после нее RemoveChars, в конфигурации Release RemoveChars выдает пустую строку или короткую строку с мусором. RemoveChars(str1) выдает нормальную строку, RemoveChars(str2) не выдает. Что не так в этом коде, и как измерить длину строки а затем убрать символы перевода строки в конфигурации Release?

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
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
 
char * RemoveChars(char * initial_string)
{
    char result_string[2048] = {};
    int i = 0, j = 0;
    while (initial_string[i])
    {
        if ((initial_string[i] != '\r') && (initial_string[i] != '\n'))
            result_string[j++] = initial_string[i];
        i++;
    }
    result_string[j] = '\0';
    return result_string;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const size_t BuffSize = 2000;
 
    char str1[BuffSize] = {};
    char str2[BuffSize] = {};
 
    strcpy_s(str1, BuffSize, "12345");
    strcpy_s(str2, BuffSize, "67890");
 
    printf("str1: %s\n", str1);
    printf("RemoveChars(str1): %s\n", RemoveChars(str1));
 
    int a = strlen(str2);
 
    printf("strlen(str2)=%d\n", a);
 
    printf("str2: %s\n", str2);
    printf("RemoveChars(str2): %s\n", RemoveChars(str2));
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru