Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Помогите разобратся со строками в С++

Ответить
Настройки темы
Помогите разобратся со строками в С++

Аватара для Guest

Guest



Профиль | Цитировать


Подскажите как сложить две строки

Отправлено: 21:27, 13-05-2004

 

Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Отправить PM | Цитировать


#include <string.h>
...
char *result;

result=strcat(string1,string2); //string1 +string2;

-------
Все, что хорошо начинается, кончается плохо. Все, что начинается плохо, кончается еще хуже.


Отправлено: 23:16, 13-05-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


#include <string>
using namespace std;

{
...
string st1="string1";
string st2=" ";
string st3="string3"

string st4=st1+st2+st3;
}

не советую использовать bcb4. Он глюкаво написан. bcb6 работает.
Советую ms vc 6 или (лучше) Metrowerks CodeWarrior 8.0

Добавлено:

второй вариант:

#include <sstream>

{...
stringstream oss;
oss << "string1" << ' ' << "string2";
return oss.str();
}

Отправлено: 08:58, 14-05-2004 | #3


Аватара для Guest

Guest


Профиль | Цитировать


А вот еще вопрос если объявить три указателя на тип char а потом их сложить вобще ето реально и если можно привести примерчик

Отправлено: 10:21, 14-05-2004 | #4


Аватара для Guest

Guest


Профиль | Цитировать


Блин что то не получается вот код
main (void){
int nomer,stepen,done,provfile,provtek,flag;
struct tm *newtime;
char *day;
char string[30]
FILE *stream;
stream=fopen("plus","r";
if (stream!=NULL)
   {
   while(feof(stream)==0)
        {
        (fscanf(stream, "%s", string));
        day=strcat(day,string)

      }
   }
   fclose(stream);
   printf (day);
выдает ошибку
пытаюсь писать на Борланд С++ 4.0

Добавлено:

Задача такая нужно прочитать из файла строки и сложить их все в одну большую кучу

Отправлено: 12:22, 14-05-2004 | #5


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Вы не выделяет память под хранение строк. Куда по-Вашему это всё должно сваливаться? Посмотрите в сторону malloc/calloc.

Добавлено:

Вот стандартный пример из man vprintf. Это почти то что Вам надо.
Код: Выделить весь код
... 
Указание достаточно большой строки и ее вывод (код корректен для обеих версий: glibc 2.0 и glibc 2.1): 
#include <stdio.h> 
#include <stdlib.h> 
#include <stdarg.h> 
char * 
make_message(const char *fmt, ...) { 
/* необходимо не более 100-а байтов. */ 
int n, size = 100; 
char *p; 
va_list ap; 
if ((p = malloc (size)) == NULL) 
  return NULL; 
while (1) { 
  /* Попытайтесь произвести печать в pазpешенном пpостpанстве. */ 
  va_start(ap, fmt); 
  n = vsnprintf (p, size, fmt, ap); 
  va_end(ap); 
  /* Если выполнено, возвpатить стpоку. */ 
  if (n > -1 && n < size) 
    return p; 
  /* Произвести повторную попытку, с пространством большего размера. */ 
  if (n > -1)    /* glibc 2.1 */ 
    size = n+1; /* Это то, что необходимо */ 
  else           /* glibc 2.0 */ 
    size *= 2;  /* Удвоить стаpый pазмеp */ 
  if ((p = realloc (p, size)) == NULL) 
    return NULL; 
  } 
}
...
Проанализируйте данный код.

Отправлено: 12:33, 14-05-2004 | #6


Аватара для Guest

Guest


Профиль | Цитировать


Вот разобрался но при выводе результата первые символы идут какието непонятные как можно от них избавится

Отправлено: 15:37, 14-05-2004 | #7


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


day[0] = '\0';

Отправлено: 09:12, 17-05-2004 | #8


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Простите, по-моему, если сделать
           day[0] = '\0';
то это будет конец строки, и вообще на экране ничего не будет(((
или нет?

-------
Боюсь не дожть мне до светлого дня,
Когда наконец-то не станет меня!
:))))))]


Отправлено: 12:05, 20-05-2004 | #9


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Ну естественно. Именно поэтому надо это сделать до первого day=strcat(day,string)

Отправлено: 12:23, 20-05-2004 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Помогите разобратся со строками в С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Помогите разобратся с DP_Base SwanHeart Хочу все знать 2 24-03-2009 16:47
Помогите разобратся со Skype'ом!!! Ms. Nikson Хочу все знать 5 26-02-2009 15:36
Помогите новичку разобратся с С++ vadimiron Программирование и базы данных 8 16-06-2004 13:09
Помогите разобратся с политикой Guest Microsoft Windows NT/2000/2003 6 11-09-2003 14:17
Помогите разобратся с мышкой Beaver Программирование и базы данных 3 25-11-2002 10:41




 
Переход