您的位置:首页 > 其它

谷歌:有一个由大小写组成的字符串,将其中的所有小写字母排在大写字母的前面

2014-06-27 01:06 363 查看
有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在答谢字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法 c语言函数原型void proc(char *str) 也可以采用你自己熟悉的语言

#include<stdio.h>
#include<string.h>

void swap( char *a, char *b)
{
char temp=*a;
*a=*b;
*b=temp;
}

//因为对修改后的字母原来的顺序不要求,所以相对来说还是比较简单的
void proc( char *str )
{
int start=0;
int end=strlen(str)-1;

for( ; start<end;  )
{
//从开始找到第一个大写字母
while( 'a'<=*(str+start) && *(str+start)<='z' && start<end)
{
start++;
}

//从尾巴开始找到第一个小写字母
while( 'A'<=*(str+end) && *(str+end)<='Z' && start<end)
{
end--;
}

//交换
if(start<end)
{
swap( str+start, str+end);
++start;
--end;
}
}
}

int main()
{
char str[]="aAWGafgc";
proc(str);
printf("%s \n",str);
getchar();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐