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. 《DSP using MATLAB》Problem 5.35

    余弦序列的谱,原始频率w0会泄露到其它频率处. 从其它书中找到的证明过程: 代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  2. LG3809 【模板】后缀排序

    题意 题目背景 这是一道模板题. 题目描述 读入一个长度为 $ n $ 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的 ...

  3. C# 的AOP实现

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

  4. CDH5上安装Hive,HBase,Impala,Spark等服务

    Apache Hadoop的服务的部署比較繁琐.须要手工编辑配置文件.下载依赖包等.Cloudera Manager以GUI的方式的管理CDH集群,提供向导式的安装步骤.因为须要对Hive,HBase ...

  5. inux下C中怎么让才干安全关闭线程

    前言:     多线程程序中,特别是频繁申请.释放线程的情况下,就要注意线程的关闭,最好使用线程池. 一,线程退出方式     (1) 运行完毕后隐式退出:     (2) 由线程本身显示调用pthr ...

  6. 【LAYABOX】轴心点和锚点

    https://blog.csdn.net/RuoYeKnight/article/details/77947288 轴心点和锚点是一个概念,都是基准点,决定了图片在舞台的位置, 简单地说,若对spr ...

  7. Oracle12C版本安装步骤

    一.下载路径 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html file1,file ...

  8. YUICompressor的安装及使用(一)

    step1:下载ant和YUICompressor    1) Ant:   http://ant.apache.org/bindownload.cgi   打开页面后,下拉滚动条,找到如下图所示,单 ...

  9. C++ vs Objective C

    oc Short list of some of the major differences: C++ allows multiple inheritance, Objective-C doesn't ...

  10. KNN手写实践:Python基于数据集整体计算以及排序

    1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. ...