【发布时间】:2014-12-10 14:33:27
【问题描述】:
我需要打印给定字符的组成部分(在这种情况下是由 pe whitespece 分隔的数字),但我不明白为什么这不起作用(不编译):(或这里 http://ideone.com/JSrqg5 )。
错误是:
error C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\ellly\documents\visual studio 2013\projects\consoleapplication15446\consoleapplication15446\source.cpp 18 1 ConsoleApplication15446
error C2664: 'char *strcpy(char *,const char *)' : cannot convert argument 1 from 'char' to 'char *' c:\users\ellly\documents\visual studio 2013\projects\consoleapplication15446\consoleapplication15446\source.cpp 21 1 ConsoleApplication15446
还有代码:
#include <iostream>
#include <cstring>
using namespace std;
char s[20000], *p, a[5000], separator[] = " ";
int k = 0, i;
void separare();
void afisare();
int main()
{
cout << "Sirul de nr:"; cin.get(s, 100, '\n');
separare();
afisare();
system("pause");
return 0;
}
void separare()
{
p = strtok(s, separator);
while (p)
{
strcpy(a[k], p);
k++;
p = strtok(NULL, separator);
}
}
void afisare()
{
int i;
for (i = 0; i < k; i++)
cout << a[i] << " ";
}
【问题讨论】:
-
我认为你必须包含 cstring 库:#include
-
修改后再次指向 strcpy 和 strtok 。
-
你说的这个“不起作用”是什么?
-
@Poldie 他的意思是它没有编译,说 strtok 和 strcpy 没有定义。 Daniq:不起作用是一个糟糕的描述,它要么无法编译,那么您应该提供错误,或者没有产生预期的输出,那么您应该发布预期的输出以及它给出的内容。
标签: c++