C语言从字符串中删除指定字符,用指针,能删除多个不同字符, 比如字符串是ABCDEFG 删除AG,输出BCDEF
在booltrimstring函数中定义两个指针,指针1为字符串,指针2为要删除的字符。建立一个布尔型的函数,删除指针1中含有指针2的字符后则把指针2的内存释放,判断为真...
在bool trimstring函数中定义两个指针,指针1为字符串,指针2为要删除的字符。建立一个布尔型的函数,删除指针1中含有指针2的字符后则把指针2的内存释放,
判断为真输出修改后的字符串,为假则输出错误信息,
然后在主函数main中给指针赋值,调用bool trimstring输出结果。 展开
判断为真输出修改后的字符串,为假则输出错误信息,
然后在主函数main中给指针赋值,调用bool trimstring输出结果。 展开
展开全部
//注释掉的是根据题目规则编的
//自我感觉,不要注释的更好,作为函数不应该封装这么多
#include <stdio.h>
#include <string.h>
#define STR_LEN 30
//#define error_info "没有需要删除的字符"
bool trimstring(char* str1, char* str2){
//int flag = 0;
int idx1 = 0, idx2 = 0;
while (str1[idx2] != '\0'){
if (strchr(str2, str1[idx2]) != NULL){
idx2++;
//flag = 1;
}
str1[idx1++] = str1[idx2++];
}
str1[idx1] = '\0';
/*if (flag == 0){
printf(error_info);
return false;
}
else{
printf("%s", str);
return true;
}*/
return true;
}
int main(){
char str1[STR_LEN] = "ABCDEFG", str2[STR_LEN] = "AG";
trimstring(str1, str2);
printf("%s", str1);
return 0;
}
追问
用指针啊 别用数组
追答
不是一样么,题目说的指针就是用来传数组用的。。而且把str1[idx2]改成*(str1+idx2),汇编出来是一模一样的,没什么区别啊。。而且函数的参数也设的是指针,和题目相符啊。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询