c语言substr函数用法(substr())

本文目录
- substr()
- C语言 在知道两段字符串的情况下截取中间的字符串
- c语言 查找substr指向的以空结尾的字节字符串的第一次出现
- 什么函数可以把字符串中的一段取出来赋到另一个字符串中
- (C语言)帮忙编写求子串函数substr(s,n1,n2)
- 用c语言编写一个函数,void substr(chars[],int start,int l
substr()
Ctext_out=““
Ctext_in=“visualfoxpro“
For I=0 To Len(Ctext_in)
Ctext_out=Ctext_out+SUBSTR(aa,LEN(Ctext_in)-I,1)
ENDFOR
? Ctext_out
C语言 在知道两段字符串的情况下截取中间的字符串
先用strcat拼接好两个子串,然后再用left方式截取。
C语言中拼接字符串可以使用strcat函数。
1、strcat()函数 ,即string catenate的缩写
原型:extern char *strcat(char *dest,char *src);
用法:#include 《string.h》
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
2、举例:
#include 《stdio.h》
#include 《string.h》
int main(){
char d=“字符串1“; //第一个字符串
char *s=“ 字符串2“; //第二个字符串
strcat(d,s); //拼接两个字符串,结果保存在第一个字符串当中
printf(“%s“,d); //输出拼接结果:“字符串1字符串2“
getchar();
return 0;
}
3、c语言截取字符串方法:
#include 《stdio.h》
#include 《string.h》
/*从字符串的左边截取n个字符*/
char * left(char *dst,char *src, int n)
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n》len) n = len;
/*p += (len-n);*/ /*从右边第n个字符开始*/
while(n--) *(q++) = *(p++);
*(q++)=’\0’; /*有必要吗?很有必要*/
return dst;
}
c语言 查找substr指向的以空结尾的字节字符串的第一次出现
char *mystrstr(char *str, char *substr)
{
int i, j, k=0, len1=0, len2=0;
while (str[len1]) len1++;
while (substr[len2]) len2++;
for (i=0; i《len1-len2; i++)
{
k=1;
for (j=0; substr[j]; j++)
{
if (substr[j]!=str[i+j])
{
k=0;
break;
}
}
if (k) break;
}
if (k) return str+i;
else return NULL;
}
什么函数可以把字符串中的一段取出来赋到另一个字符串中
用memcpy函数吧,很简单,看看下面的例子就知道了
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include 《string.h》
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
注意:与strcpy相比,memcpy并不是遇到’\0’就结束,而是一定会拷贝完n个字节。
举例:
// memcpy.c
#include 《stdio.h》
#include 《string.h》
int main(int argc, char* argv)
{
char *s=“Golden Global View“;
char d;
clrscr();
memcpy(d,s,strlen(s));
d[strlen(s)]=’\0’;
printf(“%s“,d);
getchar();
return 0;
}
(C语言)帮忙编写求子串函数substr(s,n1,n2)
//---------------------------------------------------------------------------
#include 《stdio.h》
#include 《stdlib.h》
char *substr(const char *s,int n1,int n2)/*从s中提取下标为n1~n2的字符组成一个新字符串,然后返回这个新串的首地址*/
{
char *sp=malloc(sizeof(char)*(n2-n1+2));
int i,j=0;
for (i=n1; i《=n2; i++) {
sp[j++]=s[i];
}
sp[j]=0;
return sp;
}
int main(void)
{
char s,*sub;
scanf(“%s“,s);/*输入原字符串s*/
sub=substr(s,0,5);/*提取s~s元素组成新子串,并保存到sub中*/
printf(“substr:%s\n“,sub);/*输出sub*/
free(sub);/*释放sub所占用的空间*/
return 0;
}
//---------------------------------------------------------------------------
用c语言编写一个函数,void substr(chars[],int start,int l
void substr(char s, int start, int len)
{
char * r = s;
if( start 《 0 || len 《 0)
return;
int ct = 0;
while( *s != ’\0’ && ct 《 start )
s++,ct++;
ct = 0;
while( *s != ’\0’ && ct 《 len)
*r++ = *s++,ct++;
*r=’\0’;
}

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








