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

строки, массивы символов - C++

Восстановить пароль Регистрация
 
besh]<a
 Аватар для besh]<a
12 / 10 / 1
Регистрация: 02.11.2009
Сообщений: 194
24.03.2010, 20:11     строки, массивы символов #1
1)
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
 {
   char command[4];
   char fname[60];
   char line[80];
   
   int i=0,j=0,k=0;
 
   scanf("%s",command);
   switch
 
//================================================================    
   while((line[i]!=' '))
    {
    command[i]=line[i];
    i++;
    }
   while(line[i]==' ')i++;
   for(j=0;j<60,i<80;i++,j++)fname[j]=line[i];
 
 
//================================================================
 
 
 { 
   printf("\n");
     for(int i=0;i<4;i++)printf("%c",command[i]);
   printf("\n");
      printf("\n");
        for(int i=0;i<60;i++)printf("%c",line[i]);
      printf("\n");
 
 }
 
}
здесь хотел прочтенную строку разделить на 2 строки, делиться так: если встречается пробел, то это первое слово(до пробела), потом пропускаются все пробелы и 2ое слово,

ну так вот первое слово копируется нормально, 2ое я не знаю оно не вывобиться на экран
а если выводить массив line то выводяться крякозябры всякие(делаю все в linux)...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2010, 20:11     строки, массивы символов
Посмотрите здесь:

C++ как сделать из строки массив из символов этой строки
C++ строки С++(После каждого символов '.' вставить два пробела, подсчитать, сколько раз пара символов 'C+' стоит перед символом 'D')
C++ Удалить конец строки символов. Ввести кол-во удаляемых символов , вывести результат ,String ,задачка,С++
C++ Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
C++ Определить местоположение символа первой строки, который первым не совпал с одним из символов второй строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
25.03.2010, 14:17     строки, массивы символов #2
Вашу задачу, наверное, проще сделать через указатели и функции:
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
void form (char *a,char *out, char *out2)
{   
    char *first=a; int flag=1;
    *out='\0';
    *out2='\0';
 
    while (*(first=probel1(a)))//пока не конец строки first=начало 1-го слова
    {
        a=probel2(first);//а=конец первого слова
        
        if (flag=!flag) //если значение flag меняется 
            out2=copyword(first, out2,a-first);//это второе слово
        else 
            out=copyword(first, out,a-first);
    }   
}
//пропускает пробелы: если символ пробел указатель продвигается на 1 вперед
char *probel1(char *in)
{ 
    while (*in&&((*in==' ')||(*in=='\t')))
        in++;
    return in;
}
//пропускает символы: если символ не пробел указатель продвигается на 1 вперед
char *probel2 (char *in)
{
    while (*in&&*in!=' '&&*in!='\t')
        in++;
return in;
}
//копирование от одного указателя до другого в строку
char *copyword (char * from, char *to, int len)
{
    for (int j=0; (j<len)&&(*to++=*from++); j++)
        ;
    *to++=' ';
    *to='\0';
    return to;
}
yanyk1n
 Аватар для yanyk1n
4324 / 1455 / 152
Регистрация: 12.03.2009
Сообщений: 5,310
25.03.2010, 15:37     строки, массивы символов #3
besh]<a, а strtok() не пробовали использовать?
besh]<a
 Аватар для besh]<a
12 / 10 / 1
Регистрация: 02.11.2009
Сообщений: 194
27.03.2010, 18:11  [ТС]     строки, массивы символов #4
прище не проще, проблема же не в этом... через винду нормально все выводиться на консоль, через линь кривые символы....
вобщем, там на консоль выводиться символы юникод, они 2хбайтовые, а char однобайтовый, вроде так если я правильно понял все... че делать?
Yandex
Объявления
27.03.2010, 18:11     строки, массивы символов
Ответ Создать тему
Опции темы

Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru