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. JPI中常使用的类介绍:

    Math类: java.lang包下的 final,不可被继承, 其中的方法和属性都是静态的 其构造方法私有化了,其他类不可以使用构造方法. 向上取整:Math.ceil(double d); 向下取 ...

  2. JavaEE开发的颠覆者 Spring Boot实战--笔记

    1.Spring boot的三种启动模式 Spring 的问题 Spring boot的特点,没有特别的地方 1.Spring 基础 PS:关于spring配置 PS: 现在都已经使用 java配置, ...

  3. django+uwsgi+nginx数据表过大引起"out of memory for query result"

    昨天负责的一个项目突然爆“out of memory for query result”. 背景 项目的数据表是保存超过10m的文本数据,通过json方式保存进postgres中,上传一个13m的大文 ...

  4. oracle故障解决

    修改了字符集,修改错了,然后不能启动 alter system set nls_language='AMERICA'; shutdown immediate; startup 报错 [oracle@o ...

  5. revit api 实现过滤墙图元并选中

    public IList<Element> findElementsByCategory(Autodesk.Revit.UI.UIApplication aApp, Document aD ...

  6. day01 计算机的基础知识

    1.编程语言: 人与计算机沟通的表达方式. 2.编程: 程序员用计算机能理解的表达方式(编程语言)把程序员想让计算机实现的功能写到文件里,这些文件称之为程序. 3.计算机硬件组成: 控制器:是计算机的 ...

  7. COM,SOM, QT, GObject, ObjectiveC

    COM,SOM, QT, GObject, ObjectiveC https://en.wikipedia.org/wiki/IBM_System_Object_Model#Comparison_of ...

  8. requestAnimationFrame 知识点

    与setTimeout相比,requestAnimationFrame最大的优势是由系统来决定回调函数的执行时机.具体一点讲,如果屏幕刷新率是60Hz,那么回调函数就每16.7ms被执行一次,如果刷新 ...

  9. 运行Scrapy项目提示“import win32api ImportError: DLL load failed: 找不到指定的模块。”

    安装完成Scrapy时候,终端导入Scrapy时候,发现没有任何报错,但是在运行Scrapy的项目的时候提示“import win32api ImportError: DLL load failed: ...

  10. java-保留x个小数位

    public BigDecimal setScale(int newScale,RoundingMode roundingMode)返回 BigDecimal,其标度为指定值,其非标度值通过此 Big ...