我是靠谱客的博主 怡然白羊,最近开发中收集的这篇文章主要介绍字符和字符串操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实例:统计各种字符个数

输入一组字符,要求分别统计出其中英文、数字、空格以及其他字符的个数。

代码:

#include<stdio.h>
int main()
{
char a;
int letter=0,number=0,space=0,other=0;
while((a=getchar())!='n')
{
if(a>='a'&&a<='z' || a>='A'&&a<='Z')
letter++;
else if(a>='0'&&a<='9')
number++;
else if(a==' ')
space++;
else
other++;
}
printf("%d %d %d %d",letter,number,space,other);
return 0;


实例:字符串倒置

输入字符串,要求将该字符串倒置输出。

代码:

//倒置输出,没有更改原字符串

#include<stdio.h>
#include<string.h>
int main()
{
void reput(char a[],int str1,int str2);
char a[100];
gets(a);
int str = strlen(a);
reput(a,str,str);
return 0;
}


void reput(char a[],int str1,int str2)
{
if(str1>0)
{
reput(a,str1-1,str2);
printf("%c",a[str2-str1]);
}
}


实例:字符串替换

编程实现字符串替换,先输入一字符串,然后再输入要替换成什么内容,从第几个字符开始替换。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char* replace(char str[],char str2[],int n);
printf("输入字符串:");
char str[100];
gets(str);
printf("输入要替换成什么内容:");
char str2[100];
gets(str2);
printf("要从第几个字符开始替换?:");
int n;
scanf("%d",&n);
printf("%s",replace(str,str2,n));
return 0;
}


char* replace(char str[],char str2[],int n)
{
int i,j,strl2=strlen(str2);
for (i=n-1,j=0;j<strl2;i++,j++)
{
str[i] = str2[j];
}
return str;
}


实例:回文字符串

正读反读都一样的字符串,要求从键盘输入字符串,判断该字符串是否是回文字符串。

代码:

#include<stdio.h>
#include<string.h> 
int main()
{
int paline(char str[],int len);
char str1[100];
gets(str1);
int len=strlen(str1);
if(paline(str1,len)==1)
printf("是回文字符串");
else
printf("不是回文字符串");
return 0;



int paline(char str[],int len)
{
int i;
for(i=0;i<len/2;i++)
{
if(str[i]!=str[len-i-1])
{
return 0;
}
}
return 1;
}


实例:不用strcat连接两个字符串

连接两个字符串,要求不使用strcat函数。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char str1[100],str2[100];
scanf("%s",str1);
scanf("%s",str2);
int len1=strlen(str1);
int len2=strlen(str2);
int i;
for(i=0;i<len2;i++)
{
str1[len1+i]=str2[i];
}
str1[len1+len2]='';
printf("%s",str1);
return 0;
}


实例:删除字符串中连续字符

输入一个字符串,输入要求删除的位置及长度,输出进行完删除操作的字符串。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
gets(str);
int n,m,len=strlen(str);
scanf("%d %d",&n,&m);
int i,j=n-1;
for(i=n+m-1;i<len;i++)
str[j++]=str[i];
str[len-m]='';
printf("%s",str);
return 0;
}


实例:字符升序排列

将已按升序排好的字符串a和字符串b按升序归并到字符串c中并输出。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char str1[100],str2[100],str3[200],*p;
gets(str1);
gets(str2);
int i=0,j=0,k=0;
while(str1[i]!=''&&str2[j]!='')
{
if(str1[i]<str2[j])
str3[k++]=str1[i++];
else
str3[k++]=str2[j++];
}
str3[k]='';
if(str1[i]=='')
p=str2+j;
else
p=str1+i;
strcat(str3,p);
puts(str3);
return 0;
}


实例:在指定的位置后插入字符串

用户先输入两个字符串str1和str2,再输入数值来确定将字符串2插在字符串1的第几个字符后面,最后将插入后的字符串输出。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char str1[100],str2[100],str3[100];
gets(str1);
gets(str2);
int len1=strlen(str1),len2=strlen(str2);
int position;
scanf("%d",&position);
strncpy(str3,str1,position);
str3[position]='';
strcat(str3,str2);
strcat(str3,(str1+position));
strcpy(str1,str3);
puts(str1);
return 0;
}

最后

以上就是怡然白羊为你收集整理的字符和字符串操作的全部内容,希望文章能够帮你解决字符和字符串操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部