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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
#1

Двойные кавычки в тексте. Использование strcat, lstrcat - C++

11.02.2014, 16:31. Просмотров 867. Ответов 2
Метки нет (Все метки)

Столкнулся с бооольшущей проблемой из за синтаксиса связанного с кавычками.
Делаю импорт из программы в Excel, потребовалось ввести формулу, которая естественно содержит кавычки, и не знаю теперь как же вообще создать текст с кавычками.
Формула в экселе:
=ЕСЛИ(A3="";"";ЕСЛИ(ЕЧИСЛО(A3);ЕСЛИ(B3="";"НТ";ЕСЛИ(ЕЧИСЛО(B3);ЕСЛИ(B3>=A3;СУММ(B3;-A3);"ОЗ");"ОТ"));"ОП"))
Кое что из этого можно сделать без кавычек(заменить A3="" на ЕПУСТО(A3), однако ввод слов типа: НТ, ОЗ, ОТ, ОП - требует кавычек в априори.(а так же отмены действия, когда действие не требуется, т.е. здесь: ;""
С помощью не хитрых манипуляций с помощью lstrcat и strcat я могу копировать всё кроме этих ковычек, но как их внедрить когда они нужны просто не знаю.
Например, начал делать:
C++
1
2
3
4
lstrcpy(sbuf,"=ЕСЛИ(D");
            itoa(j+7,cdle,10);
            strcat(sbuf,cdle);
            lstrcat(sbuf,"="";"";ЕСЛИ(ЕЧИСЛО(D");
Ну и посмотрел, что тут кавычки, в итоге естественно мне lstrcat вернёт ошибку... Скажите что делать?.. А можно мне в sbuf(типа char [200]) каким то способом добавить эти двойные кавычки как символ?... Думаю над способом, что там где нужны эти двойные кавычки - пользоваться не lstrcat, а просто добавлять символ типа:
C++
1
sbuf[30]=' " ';
Хотя код очень сильно усложнится, придётся ещё 20 строк кода добавлять, а это ещё и в цикле...
В общем прошу помощи...

Добавлено через 35 минут
На задворках гугла нашёл такое:
C++
1
strcat (command, "\"parametr v kavychkah\"");
В приницпе это сильно помогло, однако теперь моё мнение о функции strcat и strcpy ухудшилось, т.к. придётся писать свою функцию для предотвращения подобных ньюансов, которые могут стать фатальными.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двойные кавычки в тексте. Использование strcat, lstrcat (C++):

C++11 Оператор двойные кавычки? - C++
Всем привет! Читая ман по GMP, наткнулся в разделе о С++ обертках для "Pure C" интерфейсов этой библиотеки, на такую дичь. Что это...

WinApi C++. Конкатенация рядов символов lstrcat - C++
Доброго времени суток. Возник вопрос в роботе с WinApi в С++. В програме есть момент где нужно получить полный путь к файлу, которий...

strcat - C++
#include <windows.h> #include <iostream> #pragma warning (disable : 4996) void Func (char* lpszFileName); void main() {...

strcat - C++
#include <iostream> #include <conio.h> #include <cstring> using namespace std; char a, b; int main() { cout <<"\n...

Функция strcat - C++
Нужно написать прогу на C++ и Ассемблере...функцмя strcat(на ассемблере сделал а вот на C++ не могу).Если кто поможет буду очень...

ошибка в strcat - C++
Пишу прогу которая будет создавать файлов сколько ты захочешь :cry: но вот она выыдеает ошибку strcat' was not declared что делать ребят? ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Байт
Эксперт C
15984 / 10252 / 1536
Регистрация: 24.12.2010
Сообщений: 19,339
11.02.2014, 16:52 #2
Izual, один из выходов -замени всюду двойные кавычки на одинарные (или на символ с кодом 01). Перед окончательным выводом (когда strcat уже не повредит) замени обратно. Кстати, если в строке char s[100] содержатся двойные кавычки, функция strcat(t, s) отработает правильно.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
11.02.2014, 17:06  [ТС] #3
Цитата Сообщение от Байт Посмотреть сообщение
Izual, один из выходов -замени всюду двойные кавычки на одинарные (или на символ с кодом 01). Перед окончательным выводом (когда strcat уже не повредит) замени обратно. Кстати, если в строке char s[100] содержатся двойные кавычки, функция strcat(t, s) отработает правильно.
Пробовал в Excele двойный одинарные ковычки - но не сработало, хотя тоже читал что так можно. Но у меня не работает в функции.. Не знаю почему. Что за символ? =) Я так понимаю на клаве его нет...
С этими операциями замены будет сильно усложнён код, +100500 строк к уже существующим 17000 вводить не буду.
По поводу s, да когда то так пробовал, но опять же это +100500 строк, а хочется универсальности.

В общем пока что буду юзать strcat через слэш, а потом наверно сделаю универсальную функцию проверки и обработки.
В любом случае спасибо за подсказки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 17:06
Привет! Вот еще темы с ответами:

функция strcat - C++
Помогите разобраться, пожалуйста. char* resultat = 0; char* str = "abc"; strcat(resultat, str); вылетает с ошибкой. Как нужно...

Работа со strcat - C++
Не могу понять в чем проблема. char *NazFile = new char; char *Tempo = new char; char *ImyaUrl = new char; NazFile =...

qt crator автоматические двойные скобки, кавычки (одинарные и двойные) (Желательно как в eclipse) - C++ Qt
Можно организовать нечто подобное?

в заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки. - Turbo Pascal
в заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru