字符串的那些事儿
Posted 专业include*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串的那些事儿相关的知识,希望对你有一定的参考价值。
一、 字符串替换
二、字符串排序
三、 删除字符串中的子串
一、 字符串替换
描述:实现字符串"Good morning!"到"Good evening!"的替换。
代码实现:
#include <stdio.h>
char * MyReplace(char *s1, char *s2, int pos) //自定义的替换函数
{
int i, j;
i = 0;
for (j = pos; s1[j] != '\\0'; j++) //从原字符串指定位置开始替换
{
if (s2[i] != '\\0') //判断有没有遇到结束符
{
s1[j] = s2[i]; //将替换内容逐个放到原字符串中
i++;
}
else
break;
}
return s1;
}
int main()
{
char str1[50] = "Good morning!";
char str2[50] = "evening";
int position; //定义整型变量储存要替换的位置
printf("Before the replacement:\\n%s\\n", str1); //替换前的字符串
printf("Please input the position you want to replace:\\n");
scanf("%d", &position); //输入开始替换的位置
MyReplace(str1, str2, position); //调用替换字符串的函数
printf("After the replacement:\\n%s\\n", str1); //替换后的字符串
}
运行截图:
二、字符串排序
描述:对案例中要实现的五个字符串按照首字母大小进行由小到大的排序,并将结果输出到屏幕上。
代码实现:
#include <stdio.h>
#include <string.h>
void sort(char *strings[], int n) //自定义的对字符串排序的函数
{
char *temp;
int i, j;
//选择排序法
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(strings[i], strings[j]) > 0) //根据大小交换位置
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
int main()
{
int n = 5;
int i;
char * strings[] = //用指针数组构造字符串数组
{
"c language",
"strcmp",
"just do it"
"hello world",
"itcast",
};
sort(strings, n); //调用排序函数
for (i = 0; i < n; i++) //依次输出排序后的字符串
printf("%s\\n", strings[i]);
return 0;
}
运行截图:
三、 删除字符串中的子串
描述:从键盘输入一个字符串,输入要删除的字符串起始位置以及长度,然后输出删除后的字符串。
代码实现:
#include <stdio.h>
char * del(char s[], int pos, int len) //自定义一个删除字符串的函数
{
int i;
for (i = pos + len - 1; s[i] != '\\0'; i++, pos++)
//i的初值为指定删除部分后面的第一个字符
s[pos - 1] = s[i];
s[pos - 1] = '\\0';
return s;
}
int main()
{
char str[50]; //定义一个字符数组
int position;
int length;
printf("Please input the string:\\n");
gets(str); //输入原字符串
printf("Please input the position you want to delete:\\n");
scanf("%d", &position); //输入要删除的位置
printf("Please input the length you want to delete:\\n");
scanf("%d", &length); //输入要删除的长度
del(str, position, length); //调用自定义的删除函数
printf("After deleting:\\n%s\\n", str); //输出新字符串
return 0;
}
运行截图:
以上是关于字符串的那些事儿的主要内容,如果未能解决你的问题,请参考以下文章