由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教char *和char []的判断
相关主题
c++ string 一问在c中如果一个function return 一个字符串
map析构帮忙找个错
问个字符串的基本问题问个c语言的问题
TIJ上写错了?char s[]和char *ps的不同
这个C++程序为什么不能运行c字符串内存分配问题
四道C++面试题这个在c++ const不变,不能用相同地址的变量改,咋做的
C++ 初级再初级问题c++ template specialization 参数
A question about cost char*C 语言,初学者,简单问题(2)
相关话题的讨论汇总
话题: char话题: str话题: pos话题: int话题: count
进入Programming版参与讨论
1 (共1页)
s****n
发帖数: 1237
1
在练习一道面试题
Implement an algorithm int removeDuplicate(char[] s)
For instance change ”abbcccdda” to “abcda” and return 4(the number of
characters deleted).
我自己写了一个
int removeDuplicateString(char str[]){
int count = 0;
int pos = 0;
char *c = str;
while(*c){
if(*c == *(c+1)){ count+=1;}
else{str[pos]=*c; pos++;}
c++;
}
str[pos]='\0';
return count;
}
但是调用的时候
char string[] = "ccc"; int n =
t****t
发帖数: 6806
2
上个月刚有人问过. 答案是在函数内不可能判断; 把字符串常量给一个const char*就
不会出现这样的问题了, 因为用const char*不能调用你写的这个函数.

【在 s****n 的大作中提到】
: 在练习一道面试题
: Implement an algorithm int removeDuplicate(char[] s)
: For instance change ”abbcccdda” to “abcda” and return 4(the number of
: characters deleted).
: 我自己写了一个
: int removeDuplicateString(char str[]){
: int count = 0;
: int pos = 0;
: char *c = str;
: while(*c){

r****t
发帖数: 10904
3
本版缺乏考古的职业精神啊。
z***9
发帖数: 696
4
string2 points to a read-only data segment, you cannot modify it.
s****n
发帖数: 1237
5
got it. thx

【在 t****t 的大作中提到】
: 上个月刚有人问过. 答案是在函数内不可能判断; 把字符串常量给一个const char*就
: 不会出现这样的问题了, 因为用const char*不能调用你写的这个函数.

X****r
发帖数: 3557
6
你这个程序还有一些可改进的地方:
1)count是不需要的,最后两个指针的差就是要返回的结果。
2)对于函数参数来说,char str[]和char *差别不大,
你这种情况用后者更方便,可以不用pos。
int removeDuplicateString(char* str){
char *c;
for(c = str; *c; c++)
if(*c != *(c+1)) *str++=*c;
*str = '\0';
return c - str;
}
就我个人而言会把*(c+1)写成c[1],不过这个就见仁见智了。

【在 s****n 的大作中提到】
: got it. thx
1 (共1页)
进入Programming版参与讨论
相关主题
C 语言,初学者,简单问题(2)这个C++程序为什么不能运行
C 语言,初学者问题(3)四道C++面试题
再一个问题c++C++ 初级再初级问题
这个代码啥意思c#A question about cost char*
c++ string 一问在c中如果一个function return 一个字符串
map析构帮忙找个错
问个字符串的基本问题问个c语言的问题
TIJ上写错了?char s[]和char *ps的不同
相关话题的讨论汇总
话题: char话题: str话题: pos话题: int话题: count