Перевести код из С++ в С - C (СИ) (73706)

Формулировка задачи:

Друзья, я нуждаюсь в вашей помощи! помогите перевести данный код из С++ в С
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    static char str[256] = "c++ is object-oriented programming language. It was founded by Bjarne Straustrup many yours ago, and became a stadard for programming\0";
    printf("string = %s\n\n", str);
 
    unsigned index = 0; char* pchars[] = { " ", "." };
    while (index != sizeof(pchars) / sizeof(pchars[0]))
    {
        char **words = new char*[256], *temp = new char[256];
        memset((void*)words, 0x00, 1024); strcpy(temp, str);
 
        unsigned max_len = 0, max_pos = 0;
        char* token = strtok(temp, pchars[index]);
        for (int n = 0; token != NULL; n++)
        {
            words[n] = new char[256]; strcpy(words[n], token);
            if (strlen(token) > max_len || max_len == 0)
            {
                max_len = strlen(token);
                max_pos = n;
            }
 
            token = strtok(NULL, pchars[index]);
        }
 
        printf("longest %s = %s len = %d\n",
            (index % 2) ? "phrase" : "word", words[max_pos], max_len);
 
        index++;
    }
 
    _getch();
 
    return 0;
}

Код к задаче: «Перевести код из С++ в С - C (СИ) (73706)»

textual
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    static char str[256] = "c++ is object-oriented programming language. It was founded by Bjarne Straustrup many yours ago, and became a stadard for programming\0";
    unsigned index = 0; char* pchars[] = { " ", "." };
    printf("string = %s\n\n", str);
 
    while (index != sizeof(pchars) / sizeof(pchars[0]))
    {
        char **words = (char **)malloc(sizeof(char*)*256);
        char *temp = (char *)malloc(sizeof(char)*256);
        unsigned max_len = 0, max_pos = 0;
        char* token = 0;
        int n = 0;
        memset((void*)words, 0x00, 1024); 
        strcpy(temp, str); 
        token = strtok(temp, pchars[index]);
        for (n = 0; token != NULL; n++)
        {
            words[n] = malloc(sizeof(char)*256); strcpy(words[n], token);
            if (strlen(token) > max_len || max_len == 0)
            {
                max_len = strlen(token);
                max_pos = n;
            }
 
            token = strtok(NULL, pchars[index]);
        }
 
        printf("longest %s = %s len = %d\n",
            (index % 2) ? "phrase" : "word", words[max_pos], max_len);
 
        index++;
    }
 
    _getch();
 
    return 0;
}

11   голосов, оценка 4.182 из 5


СОХРАНИТЬ ССЫЛКУ