Giúp khắc phục lỗi 'strtok_s': function does not take 2 arguments

#define _CRT_SECURE_NO_WARNING
#include<iostream>
#include<cstring>
using namespace std;

void tach(char str[]) {
	char *p = strtok_s(str, " ");
	int i = 0;
	char str1[5][10];
	while (p != '\0') {
		strcpy_s(str1[i], p);
		i++;
		p = strtok_s('\0', " ");
	}
	cout << "\nHo: " << str1[0];
	cout << "\nDem: ";
	for (int j = 1; j< i - 1; j++) cout << str1[j] << " ";
	cout << "\nTen: " << str1[i - 1];
}

int main() {
	char str[40];
	cout << "\nNhap ho ten: ";
	cin.getline(str, 40);
	tach(str);
	return 0;
}

Bạn có thể dùng strtok thay cho strtok_s, theo refrerence ở đây thì mình thấy thằng strtok_s nhận tới 4 argument
https://en.cppreference.com/w/c/string/byte/strtok

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?