2011-05-04 21 views
0

我有一個很長的字符串,我想脫掉結束。我想擺脫字符「<」(包括性)之後的一切。這裏是工作的代碼:設置一個字符串的子串用C

char *end; 
end = strchr(mystring, '<'); 
mystring[strlen(mystring) - strlen(end)] = '\0'; 

所以,如果MyString的是

"asdfjk234klsjadflnwer023jokmnasdf</tag>alskjdflk23<tag2>akjsldfjsdf</tag2>blabla" 

該代碼將返回

"asdfjk234klsjadflnwer023jokmnasdf" 

我不知道這是否可以以更簡單的方式來完成?我知道我可以在增加在MyString中每個字符計數器,直到我找到「<」,然後使用這個int爲指標,但似乎同樣麻煩。所有其他內置的字符串庫似乎並不有用的,但我敢肯定,我只是在錯誤的方式看這個。多年來我一直沒有使用C語言。

任何幫助表示讚賞!

回答

5

肯定。這是做它的慣用方式:

char *end; 
end = strchr(mystring, '<'); 
if (end) 
    *end = '\0'; 
2

如何*end = '\0';而不是mystring[strlen...一部分?

1
char *end; 
end = strchr(mystring, '<'); 
if (end != NULL) 
    *end = '\0'; 
1

,和strchr()返回一個指針的字符(如發現),那麼:

if(end) 
    *end = '\0'; 
相關問題