-2

因此,假设我有一条如下所示的行:

"abcdefghi"

如果我想要“嗨”,并且后面没有任何内容,我该如何解析?

我试过strtok(str, "'\0'")了,但我似乎无法让它发挥作用。

C 中有一个函数可以让我这样做吗?

4

2 回答 2

2

首先,在程序早期的某个地方需要声明和定义:

#include <string.h>
…
char y[3]; // Define array to hold results.

x然后可以复制的最后两个字符和终止空字符:

// Find length of string.
size_t length = strlen(x);

// Copy last two characters.
strcpy(y, x+length-2);

请注意,这要求x至少包含两个字符。

或者,可以复制没有终止空字符的两个字符:

// Find length of string.
size_t length = strlen(x);

// Copy last two characters without the terminating null character.
strncpy(y, x+length-2, 2);

或者:

// Find length of string.
size_t length = strlen(x);

// Copy last two characters without the terminating null character.
y[0] = x[length-2];
y[1] = x[length-1];
于 2013-04-27T19:19:33.453 回答
0

您可以使用strstr在字符串中查找子字符串。

char * pointsToHi = strstr( string , "hi") ;
于 2013-04-27T18:52:54.517 回答