C语言强化——字符串(2)
1.将包含字符数字的字符串分开,使得分开后的字符串前一部分是数字后一部分是字母。例
如“h1ell2o3” -> “123hello”
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void swap(char *a, char *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
char str[10];
while (scanf("%s", str) != EOF) {
char ans[100];
int len = strlen(str), num = 0;
for (int i = 0;i < len;++i) {
if (isdigit(str[i])) {
ans[num++] = str[i];
}
}
for (int i = 0;i < len;++i) {
if (isalpha(str[i])) {
ans[num++] = str[i];
}
}
ans[num++] = '\0';
printf("%s\n", ans);
memset(str, 0, sizeof(str));
}
return 0;
}
2.将 字 符 串 中 的 空 格 替 换 成 “%020” , 例 如 “hello world how ”->
“hello%020%020%020world%020%020%020how%020%020%020%020”
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
void replace(char *c) {
char *temp = (char*)malloc(strlen(c));
strcpy(temp, c);
int i = 0;
while (*temp != '\0') {
if (*temp == ' ') {
c[i++] = '%';
c[i++] = '0';
c[i++] = '2';
c[i++] = '0';
}
else {
c[i++] = *temp;
}
temp++;
}
c[i] = '\0';
printf("%s\n", c);
}
int main() {
char str[100];
while (gets(str)) {
replace(str);
}
return 0;
}
3.删除字符串中指定的字符。 例如 “abcdaefaghiagkl“ 删除‘a’,以后: “bcdefghigkl”
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
void replace(char *c,const char a) {
char *temp = (char*)malloc(strlen(c));
strcpy(temp, c);
int i = 0;
while (*temp != '\0') {
if (*temp != a) {
c[i++] = *temp;
}
temp++;
}
c[i] = '\0';
printf("%s\n", c);
}
int main() {
char str[100], a;
while (scanf("%s %c", &str, &a) != EOF) {
replace(str, a);
}
return 0;
}
4.删除一个数组中重复的元素。例如
1 ,2, 2,2,3,3,3,4,4,5,5,5,6,6,6 -> 1,2,3,4,5,6
#include<stdio.h>
#include<string.h>
int main() {
int ori[] = { 1 ,2, 2,2,3,3,3,4,4,5,5,5,6,6,6 };
int hashTable[100] = { 0 }, ans[20] = { 0 };
for (int i = 0;i < sizeof(ori) / sizeof(int);++i) {
++hashTable[ori[i]];
}
int num = 0;
for (int i = 0;i < sizeof(ori) / sizeof(int);++i) {
if (hashTable[ori[i]] == 1) {
ans[num++] = ori[i];
}
else if(hashTable[ori[i]] > 1 ){
ans[num++] = ori[i];
hashTable[ori[i]] = 0;
}
}
for (int i = 0;i < num;++i) {
printf("%d ", ans[i]);
}
printf("\n");
return 0;
}
5.将 字 符 串 中 的 相 邻 的 多 余 空 格 去 掉 , 例 如 (空 格 用 下 划 线 表
示): ” hello world how are you ” ->”hello world how are you”
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void replace(char str[]) {
int len = strlen(str), i = 0, num = 0;
char *t = (char *)malloc(len);
//去掉首部空格
while (str[i] == ' ') i++;
//去掉中间部分
for (;i < len;i++) {
if (str[i] == ' ') {
t[num++] = ' ';
while (str[i+1] == ' ') i++;
}
else {
t[num++] = str[i];
}
}
//去掉结尾空格
while (t[num] == ' ') {
--num;
}
t[num-1] = '\0';
printf("%s\n", t);
}
int main() {
char str[100];
while (gets(str)) {
replace(str);
}
return 0;
}
6.求一个字符串数组的最大值和次大值 void big(char arr[],int size ,char* big1,char** big2)
#include<stdio.h>
#include<string.h>
void big(char *arr[], int size, char** big1, char** big2) {
for (int i = 1;i < size;i++) {
if (strcmp(*big1, arr[i]) < 0) {
*big2 = *big1;
*big1 = arr[i];
}
}
printf("Result: %s %s\n", *big1, *big2);
}
int main() {
char *str[] = { "egg","apple","animal","zig-zag","car","brown" };
char *big1 = str[0], *big2 = str[0];
big(str, 6, &big1, &big2);
return 0;
}
C语言强化——字符串(2)的更多相关文章
- C语言强化——字符串(1)
实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ; #include<stdio.h> void mystrcpy(char *i,ch ...
- R语言拆分字符串
R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...
- C语言之字符串处理函数
C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
- Swift3.0语言教程字符串与文件的数据转换
Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...
- Swift3.0语言教程字符串转换为数字值
Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...
- Swift3.0语言教程字符串大小写转化
Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...
- C语言学习 —— 字符串的学习(一)
这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...
- iOS开发-OC语言 (三)字符串
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...
随机推荐
- mongodb备份与还原
mongodb单机: 备份所有的库: mongodump --host 10.10.7.33:27019 --gzip --out /home/mongodb/0415_bf 备份指定的库: mong ...
- mysql修改用户密码
修改自己的密码(root用户,其它用户应该也差不多) 方法一: [root@localhost /]# mysqladmin -u root -p password "root" ...
- linux http配置
yum install httpd 安装http服务器 启动http服务器即可访问 如果不行的话,试着执行命令 firewall-cmd –permanent –add-service=http(该命 ...
- 几个方便的nodejs 任务调度框架
摘录几个方便的nodejs 任务调度包 node-cron https://github.com/kelektiv/node-cron node-schedule https://github.com ...
- Learning C# by Developing Games with Unity 5.x(2nd) 学习
项目:https://pan.baidu.com/s/1o7IMcZo using UnityEngine; using System.Collections; namespace VoidGame ...
- 客户端代码压缩成zip和服务器开启gzip
1.我说的zip是打包完的js代码,用压缩工具压缩为zip文件,这样放CDN上,下载量会进一步缩小,提高进入游戏的速度 嗯,需要在游戏页用js解压zip文件 2.最简单的就服务器开启gzip
- LoadRunner手写脚本、检查点、集合点、事务、思考时间
手写脚本 什么时候要手写? 可以有条件手写脚本的场景有两类: 有接口说明文档 没有借口说明文档,要去录制,录制不了,抓包手写 所需函数 我们这里讲的例子是基于 http 协议的,也是常见的两种请求类型 ...
- Python 读写
读:read(), read(size), readlines() 写:write() 关闭 close() StingIO, BytesIO() 读文本文件 read() f = open('D:/ ...
- IntelliJ IDEA使用心得
前言:我原来一直使用的是Eclipse,但是发现有的教程上使用的是Intellij这个IDE,而且我发现Eclipse在Web编程上特别是页面上的自动补全上确实有些不足,而且Intellij这个软件的 ...
- MySQL 学习资料
MySQL 学习资料: MySQL 学习资料 网址 MySQL 教程(菜鸟教程) http://www.runoob.com/mysql/mysql-tutorial.html MySQL 教程(极客 ...