|
|
|
| нужно в строку символов вставить несколько символов.
я пол инета перерыл на С++ даже не представляю как это делать(((((( помогите плиз.
если не код, то хоть алгоритмом помогите. | |
|
|
|
|
|
|
|
для: morgan18
(15.01.2012 в 00:50)
| | закроййте тему | |
|
|
|
|
|
|
|
для: morgan18
(15.01.2012 в 00:50)
| | На всякий случай все-таки приведу решение для char строк, здесь "Hello world" превращается в "Hello program world" (в предположении, что под все строки программы выделено достаточно памяти). Следует учитывать, что в промышленном коде char-строки лучше избегать, так как постоянно приходиться следить за памятью. Лучше использовать динамические строки, объем памяти, выделенной под который изменяется автоматически - это позволяет избежать целого класса ошибок.
#include <iostream>
using namespace std;
// Прототип функции
char *substr(char *str, int number);
// Глнавная функция
int main()
{
char str[80] = "Hello world";
char insert[80] = "program ";
char tmp[80];
/*
str = Hello world
tmp = world
str = Hello
str = str + programm
str = str + tmp
*/
// Копируем "word" в "temp"
strcpy(tmp, substr(str, 6));
// Удлаяем из str все, после 6 символа
str[6] = '\0';
// Добавляем к str строку insert
strcat(str, insert);
// Добавляем к str строку tmp
strcat(str, tmp);
// Выводим результат
cout << str << endl;
// Пауза перед завершением программы
system("pause");
return 0;
}
char *substr(char *str, int number)
{
return str + number;
} |
| |
|
|
|
|
|
|
|
для: cheops
(15.01.2012 в 13:51)
| | Спасибо. Если на то пошло, то какими функциями можно записать вещественное число в массив символов??? | |
|
|
|
|
|
|
|
для: morgan18
(15.01.2012 в 17:15)
| | Лучше всего старой доброй sprintf() пользоваться с её богатыми возможностями форматирования. | |
|
|
|
|
11.1 Кб |
|
|
для: cheops
(15.01.2012 в 17:58)
| | я нашел класс который преобразует строку в матеметическое выражение и считает это выражение, немного преобразовал его.
я никак не могу понять почему при вызове метода класса который считает все это несколько раз считается только значение введенное первый раз, причем в примере использования этого класса он с разными значениями работает нормально.
как сделать, чтобы считало каждый раз новое?
все это в прикрепленном проекте (MS VC++ 6.0) | |
|
|
|
|
|
|
|
для: morgan18
(19.01.2012 в 20:46)
| | А как воспроизвести ситуацию, т.е. что нужно вводить и что должно получиться. У меня при запуске в Visual Studio 2010 выводиться
Введите функцию y(x)=2*1.000000
2
2*1.000000
2 |
Это верно? | |
|
|
|
|
|
|
|
для: cheops
(21.01.2012 в 11:44)
| | у меня тоже так выводится. это не верно.
должно быть
Введите функцию y(x)=2*1.000000
2
2*2.000000
4
|
я вызываю метод f. В него передается введенное выражение(2*x) и x(в первом случае 1, во втором - 2), оно должно подставить место x в первом случае 1, во втором 2, но подставляется почемуто 1. как это исправить?
cout<<function.f(func, 1)<<endl;
cout<<function.f(func, 2)<<endl;
|
| |
|
|
|
|
|
|
|
для: morgan18
(21.01.2012 в 15:32)
| | Смотрите, у вас сначала строка func равна 2*x, однако после первого вызова cout<<function.f(func, 1)<<endl; | строка func равна "2*1.000000", т.е в неё уже не может подставиться новое значение. Попробуйте в первую строку подставить вместо 1 => 2 и программа вернет вам верный результат равный 4. | |
|
|
|
|
|
|
|
для: cheops
(21.01.2012 в 20:10)
| | спасибо попробую))) | |
|
|
|