gpt4 book ai didi

c - 如何在 C 中使用 strtok 删除 char 数组中的最后一个字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:10 24 4
gpt4 key购买 nike

我有一个函数接受一些值作为 char array[] 参数。

这些值用分号分隔 (';')。

例如:"hello;dear;John"

所以我想找出一种方法,使用 strtok 删除最后一个字符串,即最后一个分号之后的 "John"

int remove(char lastName[]){


}

*更具体一些

我创建了这个函数,它删除了用分号分隔的值:

int remove(char variable_Name[]){

char *value_toRemove = getenv(variable_Name);
char last_semicolon[] = ";";
char *result = NULL;
result = strtok( value_toRemove, last_semicolon );
while( result != NULL ) {
result = strtok( NULL, last_semicolon );
}
return NULL;
}

但该函数在找到分号后会删除所有内容。

最佳答案

strrchr 将查找字符的最后一次出现。

所以如果你不介意修改原始字符串那么它应该很简单

int remove(char *lastName){
char *pos = strrchr(lastName, ';');
if (pos) {
*pos = 0;
return pos-lastName;
}
return 0;
}

手册页 here

关于c - 如何在 C 中使用 strtok 删除 char 数组中的最后一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com