字符串
赏星乐事
这个作者很懒,什么都没留下…
展开
-
找出01字符串中0和1连续出现的最大次数
代码#include using namespace std;void Calculate(const char *str,int *max0,int *max1){ int temp0 = 0; //保存连续是‘0’的最大长度 int temp1 = 0; while(*str)原创 2017-07-19 09:39:38 · 1066 阅读 · 0 评论 -
删除指定长度的字符
问题 假设一个字符串“abcdefg”,如要从第二个开始(索引为1),删除两个字符,则删除后的字符串是“adefg”; 代码#include <stdio.h>#include <string.h>char *deleteChars(char *str,int pos,int len){ char *p = str+pos-1; int tt = strlen(str);原创 2017-07-19 09:25:50 · 432 阅读 · 0 评论 -
字符串的排序及交换
问题 编写一个函数将一条字符串分成两部分,将前半部分按ASCII码升序排列,后半部分不变,再将前后两部分交换,最后将该字符串输出。测试字符串“ADZDDJKJFIEJHGI”. 代码#include #include //冒泡排序算法void mysort(char *str,int num){ int i,j; int temp = 0; for (i原创 2017-07-19 09:25:35 · 1293 阅读 · 0 评论 -
编程实现删除字符串中所有指定的字符
问题 假设字符串为“cabcdefcgchci”,把该字符串中所有的字符‘c’删除后,结果为“abdefghi”. 代码#include char *deleteChar(char *str,char c){ char *head = NULL; char *p = NULL; if(str ==NULL) { return NUL原创 2017-07-19 09:25:07 · 4906 阅读 · 0 评论 -
编程实现库函数strcat
库函数strcat是把一个字符串内容连接到目标字符串的后面,所以应该从目标字符串的末尾,也就是结束符‘\0’的位置插入另一个字符串的内容; 代码#include #include char * mystrcat(char *dest,char *src){ char *ret; ret = dest; while(*dest++); dest--;原创 2017-07-19 09:24:49 · 428 阅读 · 0 评论 -
编程计算含有汉字的字符串长度
编写gbk_strlen函数,计算含有汉字的字符串的长度,汉字作为一个字符处理,已知:汉字编码为双字节,其中首字节代码#include using namespace std;int gbk_strlen(const char*str){ const char *p = str; while(*p) { if(*p0&&(*(p+1)0||*原创 2017-07-19 09:24:31 · 340 阅读 · 0 评论 -
编程实现字符串的循环右移
编写的函数能把一个char组成的字符串循环右移n个。例如原来是“abcdefghi”,如果n = 2,移位后应该是“hiabcdefg”. 代码#include <stdio.h>#include <stdlib.h>void loopMove(char *str,int n){ int i = 0; char * temp = NULL: int strLen =原创 2017-07-18 16:27:26 · 649 阅读 · 0 评论 -
编写字符串反转函数strrev
问题 编写字符串反转函数:strrev。要求时间和空间效率都尽量高。测试用例:输入“abcd”,输出应为“dcba”; 解法1 遍历字符串,一头一尾交换 代码char * strrev1(const char* str){ int len = strlen(str); char* tmp = new char[len+1]; strcpy(tmp,str);原创 2017-07-18 16:13:20 · 2075 阅读 · 0 评论 -
反转字符串,但其指定的子串不反转
问题 给定一个字符串,一个这个字符串的子串,将第一个字符串反转,但保留子串的顺序不变。 输入:第一个字符串:“Welcome you, my friend” 子串:“you” 输出:“dneird ym ,you emocleW” 分析 1,扫描一遍第一个字符串,然后用stack把它反转,同时记录下子串的出现的位置; 2,扫描一遍把记录下来的子串再用stack反转; 3,将堆栈里的字原创 2017-07-18 15:50:03 · 952 阅读 · 0 评论 -
字符串编码
问题 对于一个长度小于20的字符串进行编码,遵循3个规则: 1,把字符串中的字母替换成它的第4个字母,例如,a>e,A>E,X>B,y>c,z>d 2,如果字符不是字母,忽略替换; 3,翻转整个字符串; 分析 整个过程分成两部分:替换字符和翻转字符串;其中替换字符还包括一个检查的操作,即检查是否是在字母表中的字符,也就是英文的26个字符。 代码#include <iostream>u原创 2017-07-18 13:59:03 · 180 阅读 · 0 评论 -
编程实现转换字符串、插入字符的个数
问题 需要在字符串中插入字符统计的个数。例如字符串aaab,插入字符个数后变成aaa3b1; 代码#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXCOUNT 2*100char *transformation(char *str){ int len = strlen(str); cha原创 2017-07-18 11:20:35 · 399 阅读 · 0 评论 -
用字符串表示十进制数
不使用printf,将十进制数以二进制和十六进制的形式输出 问题 如果不能使用printf系列库函数,我们可以通过位运算得到这个十进制数的二进制和十六进制形式的字符串,再将字符串打印。 代码#include <stdio.h>#include <stdlib.h>#include <string.h>//得到二进制形式的字符串char *get2String(long num){原创 2017-07-18 11:02:51 · 1918 阅读 · 0 评论 -
编程实现字符串的替换
问题 用C++写一个小程序,先请用户输入3个字符串,然后把在第一个字符串中出现的所有第2个字符串替换成第3个字符串,最后输出新的字符串; 代码#include <iostream>using namespace std;char *replace(const char *str,const char *sub1,const char *sub2,char *output){ cha原创 2017-07-19 10:01:00 · 983 阅读 · 0 评论