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 ...
随机推荐
- 实验吧—安全杂项——WP之 flag.xls
点击链接下载文件,是一个xls文件 打开: 需要密码的 下一步,我将后缀名改为TXT,然后搜素关键词“flag”,一个一个查找就可以发现啦~!!!(这是最简单的一种方法)
- 杜教BM
#include <algorithm> #include <iterator> #include <iostream> #include <cstring& ...
- Linux下7z工具安装
sudo apt-get install p7zip p7zip-full p7zip-rar 使用: 使用7z --help查看使用方法. 解压: 7za X test.7z
- Spring通知方法错误
错误提示,主要最后一句话 ,花了2个小时 org.springframework.beans.factory.BeanCreationException: Error creating bean ...
- springboot收藏的博客
1.纯洁的微笑:http://www.ityouknow.com/ 2.嘟嘟独立博客:http://tengj.top/ 3.http://blog.didispace.com/
- IE浏览器兼容问题
文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入 ...
- Unity5 图形系统介绍 学习
- Python---Pycharm如何直接上传自己的代码到GitHub
请提前到官网注册GitHub账号,提前在terminal或者cmd安装git,然后你要检测自己电脑是否存在 SSH key,然后需要把SSH key复制下来,粘贴到你的GitHub. - 第一步:安装 ...
- 二维指针的malloc内存分配(转)
写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误.下面贴上一些示例代码,以供参考. 如果要给二维数组(m*n)分配空间,代码可以写成下面: char **a, i; 1 ...
- OpenCV几种访问cv::Mat数据的方法
一般来说,如果是遍历数据的话用指针ptr比用at要快.特别是在debug版本下.因为debug中,OpenCV会对at中的坐标检查是否有溢出,这是非常耗时的. 代码如下 #include <op ...