|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
传入一个字符串和重复的字符。返回一个去重后的字符串,
返回结果一直是空字符。琢磨很久不明白自己错在哪里,求大佬指点问题所在,跪谢
rep_str("abcccd", 'c')
char* rep_str(char *p1,char _c){
printf("*p1:%s ,_c: %c\n",p1,_c);
assert(p1 != NULL);
char *arr = ((char *)malloc(sizeof(p1) + 1));
if ( arr == NULL ) {return NULL; }
char *tem_arr = arr;
while (*p1 != '\0') {
if (*p1 != _c) {
*tem_arr = *p1;
*tem_arr ++;
}else{
printf("重复字符是:%c\n",*p1);
}
*p1 ++;
}
return tem_arr;
}
本帖最后由 永恒的蓝色梦想 于 2020-11-27 21:14 编辑
- #include<stdio.h>
- char* rep_str(char* const str, const char ch) {
- char* fast, * slow;
- if (str) {
- fast = slow = str;
- while (*fast) {
- if (*fast - ch) {
- *slow = *fast;
- slow++;
- }
- fast++;
- }
- *slow = '\0';
- return str;
- }
- else {
- return 0;
- }
- }
- int main() {
- char str[] = "abcccd";
- rep_str(str, 'c');
- puts(str);
- return 0;
- }
复制代码
|
-
截图
|