Перевод с C на C++

 
0
 
C++
ava
Hetls | 17.11.2016, 13:00
Дан символьный массив, образованный из слов, разделенных  пробелами.  
С использованием процедур и функций выполнить:
1) Подсчитать количество слов в тексте
2) Проверить, есть ли  в  тексте заданное слово
3) Поменять местами два слова текста с заданными номерами
4) Вставить новое слово после  указанного и выдать на печать указанное слово текста. (и собственно говоря, как это можно реализовать на языке C++)


#include <cstdio>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <iostream>
    
#define STRLEN 255
#define LEN 1000
    
int main(void){
    char str[STRLEN], wrd[STRLEN], *p;
    size_t count_all, count_word;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    printf("Massiv: ");
    fgets(str, sizeof(str), stdin);
    if ( p = strrchr(str, '\n') )
        *p = '\0';
    printf("Slovo: ");
    fgets(wrd, sizeof(wrd), stdin);
    if ( p = strrchr(wrd, '\n') )
        *p = '\0';
    
    count_all = count_word = 0;
    for ( p = strtok(str, " "); p != NULL; p = strtok(NULL, " ") ){
        ++count_all;
        if ( !strcmp(p, wrd) )
            ++count_word;
    }
    printf("Vsego slov: %d\n", count_all);
    printf("Slovo \"%s\" vstretilos %d raz(a)\n", wrd, count_word);
    
    return 0;}
    

     int main()
    {
        char sin[LEN] = {'\0'};
        char sout[LEN] = {'\0'};
        char *p;
        char swap[LEN];
        char a[LEN / 10][LEN];
        
        int k = -1, i, l, r;
        
        printf("Vvedite massiv: ");
        gets(sin);
        p = strtok(sin, " ");
        while(p)
        {
            k++;
            strcpy(a[k], p);
            p = strtok(NULL, " ");
        }
        printf("\nVvedite nomera slov dlya obmena(l <= r): ");
        scanf("%d %d", &l, &r);
        if(l > r)
        {
            printf("\n\nInput ERROR! Program close!");
            return 1;
        }
        strcpy(swap, a[l - 1]);
        strcpy(a[l - 1], a[r - 1]);
        strcpy(a[r - 1], swap);
        for(i = 0; i < k; i++)
        {
            strcat(sout, a[i]);
            strcat(sout, " ");
        }
        strcat(sout, a[k]);
        printf("\n\nMassiv: %s", sout);
        return 0;
    }


Kommentare (2)
ava
baldman88 | 18.11.2016, 11:56 #
Вы сначала в основах разберитесь и попробуйте сделать хоть что-то сами. Для начала попробуйте привести к рабочему виду тот код, который запостли. Если же Вам это не нужно, а просто необходимо сдать лабораторную работу (или что-то вроде того), то для такого рода помощи существует специальный раздел форума: Центр помощи.
ava
Hetls | 18.11.2016, 14:48 #
ОК
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden