题目要求:
删除与某个字符相邻且相同的字符,如,abcddef,删除相邻的相同字符d后变为: abcdef。
要求:输入字符串,输出删除后的结果。
咋一看,这个题目很简单,是历年全国计算机等级考试必考的题目之一,每年两次监考的时候就能看到这个题目。有些同学很快就做完,但有些不得要领不懂题意的同学也会抓耳挠腮。然而,今天面试,却让我丢大了人,没想到我也会卡壳,真是郁闷,这在平时可是在三五分钟三五行程序就搞定的事,不知今天哪根神经犯了毛病,一开始就想高明一把,用指针,而且还莫名其妙地写了个两重循环的,简单问题复杂化,一下子思路就不对了。最终还是在面试官的再三追问下我才发现我的程序不对。后来在这位面试官问我单重循环行不行,我才一下子想到,才三五分钟搞定。呵呵,不过在纸上写程序,还真是不习惯,但这更能够考察一个编程人员的功底。
现在把这个简单的程序贴出来,给各位要面试的朋友一点点提醒。:)不过,我想,绝大多数是不需要的,只有一个人需要,那个人就是我自己。
代码如下:
/**/
/************************************************************************
* 删除与某个字符相邻且相同的字符
* 如,abcddef,删除相邻的相同字符d后变为: abcdef
* 要求,输入字符串,输出删除后的结果
************************************************************************/
#include < stdio.h >
#include < string .h >
#define MAXCOUNT 100
// 用数组,不用指针
char * delete_adjacent_char1( char * str)
... {
if(str==NULL)
return NULL;
int i=0,j=0;
int len=strlen(str);
for(j=i+1;j<len;j++)
...
* 删除与某个字符相邻且相同的字符
* 如,abcddef,删除相邻的相同字符d后变为: abcdef
* 要求,输入字符串,输出删除后的结果
************************************************************************/
#include < stdio.h >
#include < string .h >
#define MAXCOUNT 100
// 用数组,不用指针
char * delete_adjacent_char1( char * str)
... {
if(str==NULL)
return NULL;
int i=0,j=0;
int len=strlen(str);
for(j=i+1;j<len;j++)
...