strtok的功能
strtok的功能是用来寻找下一个道理弦.令牌是由特定的名单可能delimiters.
以下例子从文写了一行字,并确定了档案利用delimiters、空间、 统计表、新线路.然后每个字都显示一个单独行:
#include <stdio.h>
#include <string.h>
int main()
{
FILE *in;
char line[80];
char *delimiters = " \t\n";
char *token;
if ((in = fopen("C:\\text.txt", "r")) == NULL)
{
puts("Unable to open the input file");
return 0;
}
/* 在线阅读每一个一 */
while(!feof(in))
{
/* Get one line */
fgets(line, 80, in);
if (!feof(in))
{
/*打破排队成词 */
token = strtok(line, delimiters);
while (token != NULL)
{
puts(token);
/* 获得下一字 */
token = strtok(NULL, delimiters);
}
}
}
fclose(in);
return 0;
}
但上述规划,在=的FOPEN("丙:\\text.txt","住宅"),开放档案和现行丙:\\text.txt. 如果不存在或指定的路径某些原因,档案无法开启, 屏幕上显示的是一个错误讯息.
考虑以下的例子,其中有的使用这些功能:
#include <stdio.h>
#include <string.h>
void main()
{
char line[100], *sub_text;
/* 初始化串 */
strcpy(line,"hello, I am a string;");
printf("Line: %s\n", line);
/* 加上年底弦乐 */
strcat(line," what are you?");
printf("Line: %s\n", line);
/* 找串长度 */
/* strlen带回 */
/* 长度为size_t类型 */
printf("Length of line: %d\n", (int)strlen(line));
/* 找子串的发生 */
if ( (sub_text = strchr ( line, 'W' ) )!= NULL )
printf("String starting with \"W\" ->%s\n",
sub_text);
if ( ( sub_text = strchr ( line, 'w' ) )!= NULL )
printf("String starting with \"w\" ->%s\n",
sub_text);
if ( ( sub_text = strchr ( sub_text, 'u' ) )!= NULL )
printf("String starting with \"w\" ->%s\n",
sub_text);
}
产量将展示节目如下:
Line: hello, I am a string;
Line: hello, I am a string; what are you?
Length of line: 35
String starting with "w" ->what are you?
String starting with "w" ->u? |
|