puts выводит кракозябры

207
13 декабря 2017, 23:49

Только начал изучать операции над строками в с++ и столкнулся с проблемой вывода непонятных символов. Возможно это из-за указателей ( не совсем уверен что все правильно написал).Задание-разбить две строки на слова и получить массив, который содержит слова строки + распечатать первое слово.

#include "stdafx.h"
#include<iostream>
#include<cstring>
char s1[100];
char s2[100];
using namespace std;
char** Words(char *s) {
    int i = 0;
    char*p;
    char*np = NULL;
    char **m = new char*[10];
    for (int i = 0; i < 100; i++) *(m + i) = new char[100];
    char *delimeter = " ,.!?;:\n";
    p = strtok_s(s, delimeter, &np);
    while (p != NULL) {
        strcpy_s(*m, sizeof(*m), p);
        m++;
        p = strtok_s(NULL, delimeter, &np);
    }
    return m;
}
int main()
{
    char **p1;
    char **p2;
    gets_s(s1);
    gets_s(s2);
    p1 = Words(s1);
    puts(*p1);
    p2 = Words(s2);
    puts(*p2);
    return 0;
}
READ ALSO
Почему выдает ошибку? - C++

Почему выдает ошибку? - C++

Вот исходный код:

242
Как правильно считывать в структуру?

Как правильно считывать в структуру?

Есть текстовый файл 1txt

227
Поиск слова в файле с помощью found

Поиск слова в файле с помощью found

Пишу код чтобы он искал введеное слово в файле и возвращал значение (false или true в зависимости от наличия слова), но программа всегда возвращает...

173
C и C++. Pointer(int*) to int

C и C++. Pointer(int*) to int

Вот код в C++

249