您的位置:首页 > 编程语言 > C语言/C++

c语言学习,常用的几个函数

2018-03-06 10:26 344 查看
strcpy函数
2)如何给字符串进行赋值:
   A:字符串不能直接赋值
   B:目前而言。给字符串赋值的方法是通过strcpy函数
   C:strcpy函数需要string.h的头文件的支持
   D:在使用strcpy函数时不能把大串赋值给小串
 格式:strcpy(字符串1,字符串2)   //相当于是字符串1=字符串2;
 
strlen函数:
格式: strlen("字符串");
       strlen("一维字符型数组");
  A:用来测量一个字符串中实际所含有的字符个数。这个函数不包含\0
  
  B:strlen函数需要string.h的头文件的支持

sizeof函数:
格式:  sizeof("一维字符型数组"/数组名)  用来测量数组的长度   a[100] ,  sizeof(a)//100

strcat函数
功能:用来连接两个字符串
格式:strcat(目标串,源串);//将源串添加在目标串的后面,目标串=目标串+源串。源串不变
strcmp函数
功能:比较两个字符串的大小
如何来比较字符串的大小,分别取出两个字符串的每个字符进行比较,
知道发现不相等的字符为止,然后以那个不相等的字符来决定字符串的大小。
"abcd" > "ab34"
"abcd"  == "abcd"
"abcd"    "ab"  //第二个字符串的第三个\0的ASCII码是0,是最小的
\0的ASCII码是0
如何要表示字符串1比字符串2大
if(strcmp(字符串1,字符串2)>0)    相当于串1>串2
if(strcmp(字符串1,字符串2)<0)    相当于串1<串2
if(strcmp(字符串1,字符串2)==0)   相当于串1==串2
if(strcmp(字符串1,字符串2)!=0)   相当于串1与串2不相等
if(strcmp(字符串1,字符串2))      相当于串1与串2不相等

strlwr()函数
功能:把一个字符串中的大写字母变成小写字母,其他不变。(只处理大写字母)
格式: strlwr("字符串");

strupr()函数
功能:把一个字符串中的小写字母变成大写字母,其他不变。(只处理小写字母)
格式: strupr("字符串");

 main()
 {
char a[100]="abcde";
int k,m;
k=strlen(a);//5   测量数组中包含的字符个数,不包括\0
m=sizeof(a);//100  测量数组长度
printf("k=%d,m=%d",k,m);
 
 }
 
   main()
 {
char a[100]="abcde",b[200];

int k,m;
k=strlen(a);//5   测量数组中包含的字符个数,不包括\0
m=sizeof(a);//100  测量数组长度
printf("k=%d,m=%d",k,m);
 
 }
 
 
  main()
 {
char a[100]="abcde",b[200]="123;
int i=0;
if(strcmp(a,b)>0)
{
printf("aaa");
 
}
else
{
 printf("bbb");
 
}

 }

目前而言,所学的字符串,既不能直接赋值,也不能直接比较大小,必须通过函数
 赋值      strcpy
 比较大小  strcmp
  main()
 {
char ch[80]="abcdefgh",;
int i=;
for(i=0;ch[i]!='\0';i++)  ==》等价于 for(i=0;ch[i];i++)遍历数组ch中的所有元素
{
if(ch[i]>='a' && ch[i]<='z')//小写字母
ch[i]-=32;//ch[i]代表每一个元素,小写字母变成大写字母
}
puts(ch);
 }
 
 如何来访问一维字符型数组中的每一个元素
 1)对于单纯的输入和输出而言,确实没有必须访问字符数组每一个元素
 2)有时候需要对字符型数组中的某些元素进行处理,所以这个时候就必须访问字符型数组中的所有元素
 3)通项
 
 4)如何表示某个元素是小写字母
 a[i]>='a' && a[i]<='z')
5)  如何表示某
b6bc
个元素是大写字母
 a[i]>='A' && a[i]<='Z')
 6)表示是一个英文字母
 a[i]>='a' && a[i]<='z') || [i]>='A' && a[i]<='Z')
 7)如何表示是一个数字字符
 a[i]>='0' && a[i]<='9'
 a[i]>=48 && a[i]<=57   对应的Ascii码
 8)以数字表示的字符减去'0'就变成整数的数字
  'n'-'0'==n
  '1'-'0'==1
  '2'-'0'==2
  '5'-'0'==5
  9)
  s=10*s+ch[i]-'0'
  s=s+ch[i]-'0'
  main()
 {//程序功能为把循环到的数字的值加入到s中
char ch[80]="12ab56";
int i,s=0;
for(i=0;ch[i]!='\0';i+=2)  
{
if(ch[i]>='0' && ch[i]<='9')
s+=ch[i]-'0';//1+5
}
printf("s=%d",s);//6
 }
  main()
 {//程序功能为把循环到的数字的值加入到s中
char ch[80]="12ab56";
int i,s=0;
for(i=0;ch[i]!='\0';i++)  
{
if(ch[i]>='0' && ch[i]<='9')
           s=10*s+ch[i]-'0';//1256取出所有的数字
           //s=s+ch[i]-'0';//1+2+5+6
  }
printf("s=%d",s);
 }
 44集
 main()
 {
char a[80]="AB",b[80]="LMNP";
int i=0;
strcat(a,b);   //把b的值连在a的后面,a就成了 "ABLMNP",b没有变化
while(a[i++])  //先引用,再自加,访问a[i]中的每个元素
b[i]=a[i];  
puts(b); 
 }

 main()
 {   char str[]="SSSWLIA",c;
 int k;
     for(k=2;str[k];k++)
{
c=str[k];
switch(c)
{
case 'I': ++k; break;
case 'L': continue;
default: putchar(c); continue;//S*W*
 
 
}
putchar("*");
}

第一例

让用户输入一个字符串,把其中的大写变成小写,把小写变成大写,其他不变

算法分析:
//gets(a);
char a[30]="ajdCDkdS2345E5Ffej",i=0;
puts(a);
//方法一
while(a[i++])
{
if(a[i]>='a' && a[i]<='z')
{
a[i]-=32;
continue;
}
if(a[i]>='A' && a[i]<='Z')
{
a[i]+=32;

}
}

//方法二

while(a[i++])
{
if(a[i]>='a' && a[i]<='z')
{
a[i]-=32;

}
else 
if(a[i]>='A' && a[i]<='Z')
{
a[i]+=32;

}
}

让用户输入一个字符串,查找出其中的原音字母的个数 a e i o u的个数。不区分大小写。

char ch[]="abcdio123ujfOUTADEIURESBj",i=0,sum=0;
for(i=0;ch[i];i++)
{
switch(ch[i])
{
case 'a': 
case 'e': 
case 'i': 
case 'o': 
case 'u': 
case 'A':   
case 'E': 
case 'I': 
case 'O': 
case 'U': sum++; //如果case后面不接任何语句,说明这些case与下面的是或的关系
}
}
printf("sum=%d,sum);

for(i=0;ch[i];i++)
{
switch(ch[i])
{
case 'a':
case 'A': num[0]++
case 'e': 
case 'E': num[1]++
case 'i': 
case 'I': num[2]++
case 'o': 
case 'O': num[3]++
case 'u': 
case 'U': num[4]++; //分别算出原音字母的个数
}
}
让用户输入一个字符串删除字符串中的所有原音字母,不区分大小写。

char a[]="This is a book! hello my baby!",b[100]="",i,j=0;
puts(a);
for(i=0;a[i];i++)
{
switch(a[i])
{
case 'a': 
case 'e': 
case 'i': 
case 'o': 
case 'u': 
case 'A':   
case 'E': 
case 'I': 
case 'O': 
case 'U': continue;
}
b[j++]=a[i];

}

b[j]='\0';//这一步不要忘了

或者

for(i=0;a[i];i++)
{
switch(a[i])
{
case 'a': 
case 'e': 
case 'i': 
case 'o': 
case 'u': 
case 'A':   
case 'E': 
case 'I': 
case 'O': 
case 'U': break;
default: b[j++]=a[i];
}

}
b[j]='\0';//这一步不要忘了
puts(b);
strcpy(a,b);
puts(a);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: