字符串怎么存?
先把字符串中的小写字母统计出来,用strfun()这个函数。当功能比较复杂的时候就一步一步来做。
然后把数组传过来。数组名就是一个指针。需要一个返回值,来记录小写字母的个数,n=strfun(s).
#include<stdio.h>
int str_fun(char *p);
int main(int argc,char *argv[])
{
char s[ ] = “welcomebeijing”
n=str_fun(s);
printf( " n = % d \n , n");
return 0;
}
int str_fun(char *p)
{
int num =0;
while (*p ! = '\0')
{
if(*p<='z' && *p>='0')
num++;
p++;
}
return num;
}
原理:
这类题目主要通过ASCII(美国信息交换标准代码)码差值实现,A对应ASCII码十进制数字是65,a对应ASCII码十进制数字是97,即大小写字母之间ASCII码差值为32,想要将大写字母转换为小写字母可以将该字符ASCII码值+32,同理小写字母转换成大写字母只需将该字符ASCII码值-32
代码1:
#include<stdio.h>#include<assert.h>char * my_strlwr(char * str) //定义一个my_strlwr函数{assert(str); //str的非空性char *ret = str; //定义一个ret保存最初的strwhile(*str != '\0')//判断字符串是否结束{ if((*str >= 'a')&&(*str <= 'z'))//判断当前的字符是否是小写字母{*str = *str -32;//将其转化为大写字母str++;}elsestr++;}return ret; //返回该字符串数组的首地址}int main(){char str1[666];printf("请输入一段字母:\n");scanf("%s",&str1);//输入字母字符串printf("%s\n",my_strlwr(str1)); //调用该函数,并且输出新的字符串return 0;}
【函数参数传递】编写一个函数 统计字符串中小写字母的个数 并把字符串中的小写字母转化成大写字母。