2013-04-27 37 views
-2

所以我们可以说我有一条线,看起来像这样:如何解析char数组的结尾?

"abcdefghi" 

如果我想“嗨”,并没有什么后自带,我该怎么解析?

我试过strtok(str, "'\0'")但我似乎无法得到那个工作。

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

+0

你想要什么exactelly?你的字符串的最后2个字符? – MOHAMED 2013-04-27 18:52:22

+1

恩,'strstr(东西,“嗨”)''也许? – 2013-04-27 18:52:56

+0

'printf(“%s”,“abcdfghi”+ 6);' – pmg 2013-04-27 19:01:11

回答

2

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

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

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

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

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

请注意,这要求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]; 
+0

非常感谢,我不认为C允许你复制这样的字符。再次感谢您澄清我的问题并彻底回答问题。 – Laurence 2013-04-27 20:20:09

0

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

char * pointsToHi = strstr(string , "hi") ; 
+0

非常感谢,这可能会奏效。试图在我的代码中工作。 – Laurence 2013-04-27 19:12:49