小言_互联网的博客

二级C语言编程练习题的分类汇总-----与字符串有关的非典型问题(4-16)

337人阅读  评论(0)

a.杂类(5):

  • 统计行式单词个数:
int fun(char *s)
{
	int i,j=0;
	for(i=0;s[i]!='\0';i++)
		if((s[i]!=' ')&&((s[i+1]=='\0')||(s[i+1]==' ')))
			j++;
	return j;
}
  • 寻找最长字符:
char *fun(char (*a)[81], int num, char *max)
{
int i,max;
max=a[0];
for(i=0;i<num;i++)
	if(strlen(max)<strlen(a[i]))
		max=a[i];
return max;
}
  • 将字符串中奇数位置的字符转化为大写:
void fun(char *ss)
{
	int i;
	for(i=0;ss[i]!='\0';i++)
		if((i%2)&&(ss[i]>='a')&&(ss[i]<='z'))
			ss[i]-=32;
}
  • 将小组的字符串组成大组
void fun(char a[M][N],char *b)
{
	int i,j,k=0;
	for(i=0;i<M;i++)
		for(j=0;a[i][j]='\0';j++)//j不一定要到达N
			b[k++]=a[i][j];
	b[k]='\0';
}
  • *变更字符串:
void fun (char  *w,int  m)
{
	int i,j;
	char t;
	for(i=0;i<m;i++)
	{
		t=w[0];
		for(j=1;w[j]!='\0';j++)
			w[j-1]=w[j];
		w[j-1]=t;
	}
}

b.统计指定字母或字符在串中出现的次数(4):

  • 统计特定字母的个数:
void  fun( char (*t)[M], int *a ,int *c)
{
	int i,j;
	*a=*c=0;
	for(i=0;i<M;i++)
		for(j=0;j<M;j++)
		{
			if(t[i][j]=='A')
				(*a)++;
			if(t[i][j]=='C')
				(*c)++;
		}
}
  • 统计字符串中各字母出现的次数:
void fun(char *tt, int pp[])
{
	int i;
	for(i=0;i<26;i++)
		pp[i]=0;
	for(;*tt!='\0';tt++)
		pp[*tt-'a']++;
}
  • 统计串中指定字符出现的次数(1.0)
int fun(char *str, char *substr)
{
	int i,j=0;
	for(i=0;str[i]!='\0';i++)
		if(str[i]==substr[0]&&str[i+1]==substr[1])
			j++;
	return j;
}
  • 统计串中指定字符出现的次数(2.0)
void fun(char*sp ,int *ct)
{
	int i;
	for(i=0;i<3;i++)
		ct[i]=0;
	for(i=0;sp[i]!='\0';i++)
	{
		if(sp[i]=='e'&&sp[i+1]=='a')
			ct[0]++;
		if(sp[i]=='o'&&sp[i+1]=='u')
			ct[1]++;
		if(sp[i]=='i'&&sp[i+1]=='u')
			ct[2]++;
}

c.库函数的功能函数(4):

  • 字符串-copy:
void  fun( char  *a , char  *s)
{
	int i,j=0;
	for(i=0;s[i]!='\0';i++)
		a[j++]=s[i];
	a[j]='\0';
}
  • 字符串-长度比较:
char  *fun ( char *s,  char *t)
{
	int i,j;
	for(i=0;s[i]!='\0';i++);
	for(j=0;t[j]!='\0';j++);
	if(i<j)
		return t;
	else
		return s;
}
  • *字符串-拼接:
void fun(char p1[], char p2[])
{
	int i,j;
	for(i=0;p1[i]!='\0';i++);
	for(j=0;p2[j]!='\0';j++)
	p1[i++]=p2[j];
	p1[i]=='\0';
}
  • **字符串-倒序:
void fun(char*s)
{
	char ch;
	int i=0,m,n;
	m=n=strlen(s)-1;
	while(i<(n+1)/2)
	{
		ch=s[i];
		s[i]=s[m];
		s[m]=ch;
		i++;
		m--;
	}
}

d.将字符串化为整形数(2):

  • *将数字字符串转化成长整型整数(1.0)
long  fun( char  *s )
{
	 int i,sum=0,len;
	 len=strlen(s);
	 for(i=1;i<len;i++)
	 {
		 sum=sum*10+*s-'0';
		 s++;
	 }
	 return sum;
}

**将数字字符串转化成长整型整数(2.0)

long  fun ( char *p)
{
long flag=1;
long n=0;
while(*p=='+')
	p++;
while(*p=='-')
{
	flag=-1;
	p++;
}
while(*p)
{
	*p=n*10+*p-'0';
	p++;
}
return n*flag;
}

e. ***判断连续递增字符串(1):

int  fun( char  *t )
{
	int i, flag=1;
	char current_ch,before_ch=t[0];
	int s;
	s=strlen(t);
	if(s<2)
	{
		return 0;
	}
	for(i=1;t[i]!='\0';i++)
	{
		current_ch=t[i];
		if(current_ch!=before_ch+1)
		{
			flag=0;
			break;
		}
		before_ch=current_ch;
	}
return flag;
}

转载:https://blog.csdn.net/qq_43595030/article/details/100544773
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场