[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Code:
    #include <windows.h>
    int main(int argc, char* argv[])
    {
    char in[255];char out[255];int i;scanf("%s",&in);for(i=0;i<=lstrlen(in);i++){out[i]=in[i];}printf("%s",out);return 0;}
    
    
    Я гений?

    ЗЫ У меня редактор такой и не пашет.
     
    #1181 z01b, 12 Jun 2008
    Last edited: 12 Jun 2008
  2. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    V obshem ya ispravil vot tak:
    Code:
    int c, nl, t, space, n, i, l;
    	char array[100];
    .........
    while ((c = getchar()) != EOF) {
    ........
    else {
    			array[i] = (char )c;
    			/*array[i] = c;*/
    			++i;
    		}
    
    Tolko v chem to dopustil oshibku seichas eksperementiruu.
     
    2 people like this.
  3. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    почти 8)))))))))
    если тут исправишь
    scanf("%s",&in);

    2 procedure
    идешь в правильном направлении
     
    #1183 Delimiter, 12 Jun 2008
    Last edited: 12 Jun 2008
  4. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    eto ne sravnenie, a prisvaivanie,
     
  5. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    с=getchar()
    не сбивай его....
     
    1 person likes this.
  6. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Mojet bit nujno "c" sdelat char?
     
  7. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    нет getchar возвращает int , на случай скан-кодов со времен Dos
    так уж клавиатура устроена что количество кодов которое она может выдать больше чем 255!

    попробуй понять мою строку
    for(i=0;(array=(char )getchar())!=EOF;i++)
    ....
     
  8. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    нет, там все окей ;) с присваивается код введенного символа.
     
  9. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    a est ved raznica mejdu ++i; and i++; V kingie bilo napisano chto ++i; eto increment. A ostalnoe xz potom obyasnyat*)))))))

    eto ya ponyal tak, v massiv dobavlyautsa dannie poka idet vvod i poka virajenie ne ravno EOF.

    v obshem seihas poprobuu.
     
  10. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    t.e. etu stroku nujno ispolzovat vmesto while?
     
  11. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    i++ и ++i
    отличаются тем когда должно быть увеличение i
    i++ после текущей ситуации
    ++i до текущей ситуации

    уловие понял правильно.... ввод идет прямо в массив заодно проверяясь
    самое смешное будет ниже

    for(i=0;(array=(char )getchar())!=EOF;i++)
    {
    switch(array)
    {
    case '\t':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5': i--; //фильтруются все символы от 1 до 5 и табуляции
    } // за счет смещения текущего положения счетчика цикла
    }
    array=0; //все строки в С должны завершаться нулем
    printf("%s",array) // при указании массива без индексов берется его адрес
     
    #1191 Delimiter, 12 Jun 2008
    Last edited: 12 Jun 2008
  12. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Code:
    #include <stdio.h>
    
    main()
    {
    	int c, nl, t, space, n, i, l;
    	char array[100];
    	nl = c = t = space = n = 0;
    	
    	
    	for (i = 0; i < 100; ++i) {
    		array[i] = 0;
    	}
    	
    	i = 0;
    	for(i=0;(array[i]=(char )getchar())!=EOF;i++) {
    		if (array[i] == '\n') {
    			
    			printf("\nSymbol: ");
    			
    			for (l = 0; l < i; ++l) {
    				printf("%d ", array[l]);
    			}
    			printf("\nTab: %d\nSpace: %d\nNumber: %d\n", t, space, n);
    			break;
    		}
    		else if (c == '\t') {
    			++t;
    		}
    		else if (c == ' ') {
    			++space;
    		}
    		else if (c >= '0' && c <= '9') {
    			++n;
    		}
    	}
    }
    ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat:
     
  13. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    >>
    ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat

    ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
     
    #1193 z01b, 12 Jun 2008
    Last edited: 12 Jun 2008
    3 people like this.
  14. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    ya ehe ot seba dobavil case '\n': break; chtob is programmi vihodit bilo mojno, t.e. iz cikla.
    no on chto to ne vihodit....sori ya swith prosto ehe ne prohodil...
     
  15. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    в цикле for //// ты должен считать

    а уж по окончании выдавать результаты , а ты при первом же нахождении
    кода "возврата строки" пытаешься напечатать!

    Code:
    t=space=n=0;
    for(i=0;(array[i]=(char )getchar())!=EOF;i++)
    {
       if(array[i]=='\t')
          t++; 
       if(array[i]>='0' && array[i]<='9')
          n++;
       if(array[i]==' ')
          space++;
    }
    array[i]=0; //все строки в С должны завершаться нулем
    printf("Symbol:%s\r\n",array); // при указании массива без индексов берется его адрес
    printf("Tab:%d\r\n",t);
    printf("Space:%d\r\n",space);
    printf("Number:%d\r\n",n);
    
     
    #1195 Delimiter, 12 Jun 2008
    Last edited: 12 Jun 2008
  16. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    mne nujen chtob on vidaval ne Symbol: 115 97 100 102 103, a Symbol: sadfg
     
  17. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    ну ты выводишь каждый элемент как число
    printf("%d ", array[l]);

    если хочешь как символ
    printf("%с ", array[l]);

    но взгляни ВЫШЕ как я вывожу весь массив одной 0-завершенной строкой...

    printf("%s",array); //вывод строки символов пока не встретится 0!
     
    #1197 Delimiter, 12 Jun 2008
    Last edited: 12 Jun 2008
    1 person likes this.
  18. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    chvaki ya ponyal, chtob vivelsya simvol nujno bilo ispolzovat vmesto %d, %s. Spasibo bolshoe. Dumau do zavtra rashiru funkcional. =))
     
  19. klown

    klown New Member

    Joined:
    20 Mar 2008
    Messages:
    12
    Likes Received:
    3
    Reputations:
    1
    ну это стандартно, что ++i сперва инкрементируется а потом используется а i++ сперва используется а потом инкрементируется..
     
    #1199 klown, 12 Jun 2008
    Last edited: 12 Jun 2008
    1 person likes this.
  20. hoty

    hoty Elder - Старейшина

    Joined:
    20 May 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    1
    To z01b:

    Охото сделать программу наподобие teleport pro.
    Но до такого далеко...

    Сенк. Посмотрю.
     
Thread Status:
Not open for further replies.