char * DeleteChararcter_00(char str[],char c)
要求:
时间复杂度为O(n),空间复杂度O(1)
解答:
char* DeleteChararcter(char str[], char c)
{
char* ret = str; // 1分
if( str != NULL ) // 3分
{
char* p = str;
while( *str ) // 3分
{
if( *str != c ) // 2分
{
*p = *str;
p++;
}
str++; //2分
}
*p = *str; // 3分 最后一句赋值 是加上结束符 0,否则你返回的就不是字符串了
}
return ret; //1分
}
对于这种笔试面试题 大家一定尽量不要用库函数
大家要记得 对于考察这种基本的字符串处理类型的考题 都是考察编程功底 所以大家不要用库函数
对于明显考察数据结构或者某些相对大型问题的解法时 可以使用库函数
代码
inta[3][2]={1,2,3,4,5,6};
int*p[3];
p[0]=a[1];
问*(p[0]+1)是个什么东西
p[0]=a[1];
也就是说 p[0]保存的是 第二而行的首地址 即指向 3
那么第二行的首地址 + 1 就是 3 的下个元素
即4
第一题
函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用钟,属于
不合法调用的是:
A hello(5)
B.hello(5,8)
C.hello(6,"#")
D.hello(0,0,"#")
解答:
对于这种题目 简单的基础题 笔试会考的
默认函数参数的匹配规则是
从最左边依次匹配 因此C不对 第二个实参是const char*而 形参类型为 int 无法匹配 所以错了