2013-04-27 64 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