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)的更多相关文章

  1. C语言强化——字符串(1)

    实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ; #include<stdio.h> void mystrcpy(char *i,ch ...

  2. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  3. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  4. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

  5. Swift3.0语言教程字符串与文件的数据转换

    Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...

  6. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

  7. Swift3.0语言教程字符串大小写转化

    Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...

  8. C语言学习 —— 字符串的学习(一)

    这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...

  9. iOS开发-OC语言 (三)字符串

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...

随机推荐

  1. ionic1实现热更新以版本检测更新安装包的方法

    1.需要下载热更新插件:插件名称是cordova-hot-code-push 首先打开cli,执行命令 npm install -g cordova-hot-code-push-cli 此功能主要是为 ...

  2. SpringMvc和Mybatis整合总结

    1.先配置mybatis,测试读取数据库 2.自己测试数据 3.配置spring和springmvc, PS:配置web.xml,这样就不用getBean了 4.配置Controller 5.前后台交 ...

  3. C# 的AOP实现

    闲来无事,做了一个AOP示例,此示例只能捕获方法调用事件,无法动态阻止方法调用的执行.因为取消后构造返回值成了难题,返回null貌似会报错.如果不需要这个功能,其实还是很完美的. 缺点是没有以接口方式 ...

  4. PyMongo 常见问题

    PyMongo是线程安全的吗PyMongo是线程安全的,并且为多线程应用提供了内置的连接池 PyMongo是进程安全的吗PyMongo不是进程安全的,如果你在fork()中使用MongoClient实 ...

  5. mysql修改用户密码

    修改自己的密码(root用户,其它用户应该也差不多) 方法一: [root@localhost /]# mysqladmin -u root -p password "root" ...

  6. linux查看网络信息命令

    #遇到一条很长的命令怎么办,想换行的时候在末尾增加\符号就可以换行继续输入命令了 #在ifconfig内容中找出ip [root@bogon ~]# ifconfig ens33|grep " ...

  7. Commons工具包的使用

    使用步骤: 1.Java  Project下新建Folder文件夹,命名lib 2.lib文件夹下把Commons-io-2.4jar包复制进去 3.右键Commons-io-2.4jar包,点击Bu ...

  8. SpringBoot2

    2018.3月Spring Boot2.0发布,是Spring Boot1.0发布4年之后第一次重大修订.Spring Boot2.0版本经历了 17 个月的开发,有 215 个不同的使用者提供了超过 ...

  9. springfox+swagger2生成API文档

    1.建立一个spring mvc工程: 2.添加POM依赖: <properties> <springfoxversion>2.6.1</springfoxversion ...

  10. js检测字符串的字节数

    在js中字符串可以存放数字,字母或者汉字,但是又一个问题就是,数字和字母都是占一个字节,而一个汉字占2个字节.如果在一个字符串中既有字母又有汉字怎么判断字节数呢 第一种简单粗暴 var str = ' ...