概述
实例:统计各种字符个数
输入一组字符,要求分别统计出其中英文、数字、空格以及其他字符的个数。
代码:
#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]='