问题描述
从键盘输入一个字符串,将该字符串按下述要求处理后输出:
将ASCII码大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,
将ASCII码小于等于原首字符的各字符按升序集中在原首字符的右边。

输入说明
输入一行字符串,字符串c不长度超过100.

输出说明
输出处理后的一行字符串

输入样例
aQWERsdfg7654!@#$hjklTUIO3210X98aY

输出样例
sdfghjkla!#$0123456789@EIOQRTUWXYa

#include<stdio.h>
#include<string.h>
void order(char s2[]){
int i,j,len=strlen(s2);
char ch;
for (i = 0; i < len-1; i++) {
for (j = i; j < len; j++) {
if (s2[i] > s2[j]) {
ch = s2[i]; s2[i] = s2[j]; s2[j] = ch;
}
}
}
}
int main() {
char str[101]={0}, s1[99]={0}, s2[99]={0};
int i, k1 = 0, k2 = 0,len;
//gets(str);
scanf("%s",str);
len=strlen(str);
for (i = 1; i < len; i++) {
if (str[i] > str[0]) {
s1[k1] = str[i]; k1 += 1;
}
if (str[i] <= str[0]){
s2[k2] = str[i]; k2 += 1;
}
}
s1[k1] = 0; s2[k2] = 0;
printf("%s",s1);
printf("%c", str[0]);
order(s2);
printf("%s",s2);
return 0;
}

  在程序里的判断条件不能使用strlen()函数,因为该函数的返回值为unsigned int 与int比较或加减会出错,因为int第一位表示正负,而unsigned int八位都表示大小。正确的应定义int的变量a=strlen(),再在判断条件中使用该变量a而不是直接使用函数,这样就把unsigned转化为了int型

西电oj109题处理字符串的更多相关文章

  1. 杭电ACM题单

    杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...

  2. ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)

    1064: 输入三个字符串,按由小到大的顺序输出 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 471  Solved: 188[Submit][Sta ...

  3. poj 1007:DNA Sorting(水题,字符串逆序数排序)

    DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 80832   Accepted: 32533 Des ...

  4. hdu 1106:排序(水题,字符串处理 + 排序)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  5. 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”

    按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...

  6. 题解西电OJ (Problem 1007 -做一名正气的西电人 )--长整型计算

    Description 一天,wm和zyf想比比谁比较正气,但正气这种东西无法量化难以比较,为此,他们想出了一个方法,两人各写一个数字,然后转化为二进制,谁的数字中二进制1多谁就比较正气! Input ...

  7. Help Johnny-(类似杭电acm3568题)

    Help Johnny(类似杭电3568题) Description Poor Johnny is so busy this term. His tutor threw lots of hard pr ...

  8. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信

    网页一键配网(1若为普通wifi直连  2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_H ...

  9. 小甲鱼Python第十三讲课后题--014字符串

     字符串的方法及注释 capitalize()     把字符串的第一个字符改为大写     casefold()     把整个字符串的所有字符改为小写     center(width)      ...

  10. 杭电oj2093题,Java版

    杭电2093题,Java版 虽然不难但很麻烦. import java.util.ArrayList; import java.util.Collections; import java.util.L ...

随机推荐

  1. Visual Studio 2010安装

    学校要计算机二级证书,为了准备c语言的二级考试,要装Visual Studio 2010(Visual Studio 2022生成的文件过不了检测) 1-下载安装包 在这个网站上下载安装包 MSDN, ...

  2. 33. Java对异常处理的两种方式

    声明异常 throw: 关键字,用于抛出一个指定的异常对象 必须写在方法内部.必须是Exception或Exception的子类对象 throws: 用于方法声明上,表示当前方法不处理该异常,提醒调用 ...

  3. JS中有关(...)的介绍

    1,深拷贝一个对象 如上图所示,obj和tmp是完全两个独立的对象,互不影响. 2,数组复制 如上图所示,arr和tmp是两个完全独立的数组,彼此之间的值互不影响. 3,函数形参中的使用 这里的... ...

  4. c++内存分配函数

    c语言中: 动态分配内存: malloc()函数; 释放内存: free()函数; c++中: 上述函数仍然可以使用; 动态分配内存: new关键字; 释放内存: delete关键字; int *p ...

  5. 在控制台中输入msqyl一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'错误

    错误: 在绿色Mysql的bin文件下打开cmd,输入mysql,一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' ...

  6. 【2020NIO.AC省选模拟#10】C. 寄蒜几盒

    题目链接 原题解: 可以发现,假设我们把凸多边形看做障碍,一个点没有被染色当且仅当在它的位置上能看到凸多边形任意两条相对的边中的一条(也就是能看到至少$\dfrac{n}{2}$条边). 对于每个询问 ...

  7. 简单的理解synchronized锁升级

    前言 今天碰到一个synchronized锁升级的问题, 查了查, 发现一个帖子举例说明比较贴切, 特此转发, 如有问题, 欢迎讨论说明 转自: 木叶盒子 https://www.bilibili.c ...

  8. MVC+EF API 跨域

    MVC+EF API --2 一. MVC+EF 不管是MvcHAIS Ef 都有文件夹Controller 二.Link查询 多表联查 匿名类型 三.Postman使用 四.mvc访问使用API 跨 ...

  9. Python模块——os模块详解

  10. c++项目

    如题, 想搞1-2个c++项目把目前除了进程.线程管理的所有所学都用起来. 在自己设想中.