您当前的位置: 首页 >  c语言

jeff one

暂无认证

  • 0浏览

    0关注

    220博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C语言 字符串

jeff one 发布时间:2022-04-20 22:40:45 ,浏览量:0

C语言 字符串

【C语言】删除字符串中所有空格(Demo)

#include 
#include 
void remove_space(char* str);
#define N 20
int main(void)
{
	char str[N];
	fgets(str, sizeof(str), stdin);
	remove_space(str);
	fputs(str, stdout);
	system("pause");
	return 0;
}
void remove_space(char *str)
{
	int i, j;
	for (i = 0, j = 0; str[j] && str[j]!='\n'; j++)		//j为活动下标,i始终在离j最近的左侧且str[i]不为空格
	{
		if (str[j] != ' ')
			str[i++] = str[j];		//等价于str[i] = str[j];	i++;
	}
	str[i] = 0;		//最后i值为除开空格后字符串的长度
}

C语言——比较两个字符串的长度

#include
 
char *fun(char *s,char *t)
{
	char *p=s,*q=t; 
	while(*p||*q)
	{
		if(*p==NULL&&*q!=NULL)
			return t;
			
		if(*p==NULL&&*q==NULL)
			return s;
			
		if(*p!=NULL&&*q==NULL)
			return s;
		p++;
		q++;
	}
 } 
 
 int main()
 {
 	char a[20],b[20];
 	void NONO();
 	printf("Input 1th String:");
 	gets(a);
 	printf("Input 2th String:");
 	gets(b);
 	printf("%s\n",fun(a,b));
 	NONO();
 }
 
 void NONO()
 {
 	FILE *fp,*wf;
	int i;
	char a[20],b[20];
	fp=fopen("in.dat","r");
	wf=fopen("out.dat","w");
	for(i=0;i=m)
	 	p=s;
	else
		p=t;
	
	return p; 
 }
 
 
 
 

C语言中常见的字符串操作函数

函数名: strcpy
功  能: 拷贝一个字符串到另一个
用  法: char *strcpy(char *destin, char *source);

#include 
#include 
int main()
{
    char desstr[10];
    char *srcstr = "abcdefg";
    strcpy(desstr,srcstr);
    printf("%s\n",desstr);
 
}





函数名: strcat 
功  能: 字符串拼接函数 
用  法: char *strcat(char *destin, char *source); 

#include 
#include 
int main()
{
    char temstr [50] = {0};
    char *desstr = "123456";
    char *srcstr="789";
    char *temp = NULL;
    strcpy(temstr,desstr);
    strcat(temstr,srcstr);
    temp = strchr(temstr,'7');
    printf("%s",temp);
 
}


函数名: strchr 
功  能: 在一个串中查找给定字符的第一个匹配之处 
用  法: char *strchr(char *str, char c);
说明:返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。

#include 
#include 
int main()
{
    char temstr [50] = {0};
    char *desstr = "123456";
    char *srcstr="789";
    strcpy(temstr,desstr);
    strcat(temstr,srcstr);
    printf("%s",temstr);
}
 
 
 函数名: strcmp 
功  能: 串比较 
用  法: int strcmp(char *str1, char *str2); 
看Asic码,str1>str2,返回值 > 0;两串相等,返回0

/*
当s1s2时,返回正数
*/
#include 
#include 
int main()
{
    char string[20];
    char str[3][20];
    int i;
    for(i=0;i0)
        strcpy(string,str[0]);
    else
        strcpy(string,str[1]);
    if(strcmp(str[2],string)>0)
        strcpy(string,str[2]);
    printf("\nThe largest string is%s\n",string);
    return0;
}


函数名: strcspn 
功  能: 在串中查找第一个给定字符集内容的段 
用  法: int strcspn(char *str1, char *str2);

函数说明:strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject 所指的字符串中. 简单地说, 若strcspn()返回的数值为n, 则代表字符串s 开头连续有n 个字符都不含字符串reject 内的字符.
返回值:返回字符串s 开头连续不含字符串reject 内的字符数目

#include 
#include 
int main()
{
    char *desstr = "holle ,hi 123";
    char *srcstr=",";
    int relust = 0;
    relust = strcspn(desstr,srcstr);
    printf("%d",relust);
 
}


函数名: strdup 
功  能: 将串拷贝到新建的位置处 
用  法: char *strdup(char *str);

功 能: 将串拷贝到新建的位置处
strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。

#include  
#include  
#include  
int main(void) 
{ 
    char *dup_str, *string = "abcde"; 
    dup_str = strdup(string); 
    printf("%sn", dup_str); 
    free(dup_str); 
    return 0; 
} 


函数名: stricmp 
功  能: 以大小写不敏感方式比较两个串 
用  法: int stricmp(char *str1, char *str2); 

#include  
#include  
int main(void) 
{ 
   char *buf1 = "BBB", *buf2 = "bbb"; 
   int ptr; 
   ptr = stricmp(buf2, buf1); 
   if (ptr > 0) 
      printf("buffer 2 is greater than buffer 1n"); 
   if (ptr len){
  n=len;
}
//int start=len-n;
//q=q+start;
q+=len-n;
while(n--) *(p++)=*(q++);
*(p++)='\0';
return dest;
} 

从中间某处截取一定长度的的子字符串:

static char* cut_substr(char *dest,const char *src ,char start,int n){
char *p=dest;
char *q=src;
chsr *temp=NULL;
int len=strlen(src);
 
if(start>=len || startstrlen(temp)){//注意这里,截取长度如果超过了src剩余的长度则只截取到src的最后,以避免内存越界;
   n=strlen(temp);
}
q+=start;
while(n--) *(p++)=*(q++);
*(p++)='\0';
return dest;
} 

关注
打赏
1661150981
查看更多评论
立即登录/注册

微信扫码登录

0.0444s