栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言--字符串程序设计题及常用字符串处理函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言--字符串程序设计题及常用字符串处理函数

 
#include 
 
void splitfloat( float x, int *intpart, float *fracpart );
 
int main()
{
    float x, fracpart;
    int intpart;
 
    scanf("%f", &x);
    splitfloat(x, &intpart, &fracpart);
    printf("The integer part is %dn", intpart);
    printf("The fractional part is %gn", fracpart);
 
    return 0;
}
void splitfloat( float x, int *intpart, float *fracpart ){
	*intpart = (int)x;
	*fracpart = x- (*intpart);	
}
 
#include

int main()
{
	float x;
	int a,b;
	
	printf("Enter x:");
	scanf("%f",&x);
	
	a=x;     
	b=(int)(x*100)%100;         
	
	printf("%d %d",a,b);
	return 0;
	
}

 例:输入20.21

第一种方法输出的是:20和0.21;

第二种方法输出的是:20和21。

字符串的应用:

 
#include
#define MAXN 10
int main(void)
{
	int i,k=0;
	char line[MAXN];
	
	printf("Enter string:");       
	
	while((line[k]=getchar())!='n'){
		k++;
	}
	line[k]='';                 
	
	
	i=0;
	k=k-1; 
	
	while(i=k){
		printf("这是回文!");
	}else{
		printf("这不是回文!"); 
	} 
	
	
}
*字符串压缩*/ 
#include
#define MAXN 30
void zip(char *p);
int main()
{
	char line[MAXN];
	printf("Enter string:");
	gets(line);
	zip(line);
	puts(line);
	
	return 0;
}
void zip(char *p){
	
	char *q=p;
	int n;
	while(*p!=''){
		n=1;
		while(*p==*(p+n))        
{
	n++;
	}
	if(n>=10){                   
		*q++=(n/10)+'0';
		*q++=(n%10)+'0'; 
	}else if(n>=2){
		*q++=n+'0';
	}
	*q++=*(p+n-1);               
	p+=n;                        
		}
	*q='';                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
	
}

字符串常用处理函数

(1)输入与输出:printf,scanf,gets(s),puts(s).

        scanf与gets的区别在于当输入空格键或tab时,scanf会认为该字符串结束读取,将空格后的字符串列为下一项,而gets会继续读取字符串,直到换行。

  (2)  字符串复制函数:char *strcpy(char *s1,char  *s2).

        将s2复制到s1,直到遇到s2中的 '' 为止。且s1要有足够的内存空间存放s2,且函数返回值是s1。

        参数s1必须是字符型数组基地址,s2可以是字符数组名或字符串常量。

(3)字符串连接函数:char *strcat(char *s1,char *s2).

        将s2连接到s1后面。s1原有的 '' 结束符被放在连接后的结束位置上。所以s1需要有足够的空间。

         s1与s2类型要求同上。

        注意:C语言中不允许直接使用算术运算符将两个字符串连接。

另外,strcpy,strcat容易出现安全问题,当s1内存空间不足时,从s2拷贝的数据可能会越界进入其他地址或者造成数据丢失,且有时候不太容易知道s1的内存空间。char *strncpy和char *strncat是较为安全的版本,其中的 ’n' 表示最多可以从s2拷贝多少个字符,若输入的字符串个数大于n,函数会自动地把n后面的字符删掉。

 (4)字符串比较函数:char *strcmp(char *s1,char *s2).

         s1和s2可以是字符数组名或字符串常量。

         若s1 s2大小相等,返回 0;

         若s1大于s2,返回一个正数;

         若s1小于s2,返回一个负数。

         当输入printf(“%dn",'a' -'A') ; 时,输出的值为32,说明a大于A。        

 (5)字符串长度函数:strlen(s1).

         s1可以是字符数组名或者字符串常量。

         其计算的s1的有效长度不包括 ‘' 。

         在使用字符串处理函数时,必须要提供函数原型。通常用 #include来引入头文件string.h。 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317843.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号