C语言取子串函数实例 c语言字符串取子串

C程序编写一个字符串求子串(急)#include stdio.h
#include stdlib.h
char *substr(const char *s,int n1,int n2)/*从s中提取下标为n1~n2的字符组成一个新字符串,然后返回这个新串的首地址*/
{
char *sp;
sp=(char *)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[80],*sub;
scanf("%s",s);/*输入原字符串s*/
sub=substr(s,0,5);/*提取s[0]~s[5]元素组成新子串,并保存到sub中*/
printf("substr:%s\n",sub);/*输出sub*/
free(sub);/*释放sub所占用的空间*/
return 0;
}
一个简单的方法!
C语言求子字符串个数c:
#include stdio.h
#include stdlib.h
#include math.h
#include string.h
int countsub(char *str, char *ss) {
int len = strlen(str), index = 0, max = 0;
int *maxStr = (int*)malloc(sizeof(int) * len);
for (index = 0; indexlen;index) {
【C语言取子串函数实例 c语言字符串取子串】maxStr[index] = 0;
}
index = 0;
for (int i = 0; str[i] != '\0';i) {
int j = 0;
for (; ss[j] != '\0'str[ij] != '\0'ss[j] == str[ij];j);
if (j0ss[j] == '\0') {
maxStr[index];
i= j - 1;
} else {
index;
}
if (maxStr[index]max)
max = maxStr[index];
}
return max;
}
int main() {
char s1[1000] = { 0 }, s2[100] = { 0 };
gets(s1);
gets(s2);
printf("%d\n", countsub(s1, s2));
return 0;
}
c语言中 , 有一个字符数组,怎么样取出一个子字符串,知道开始坐标和结束坐标函数名: strncpy
功能: 串拷贝
用法: char *strncpy(char *destin, char *source, int maxlen);
程序例:
#include stdio.h
#include string.h
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strncpy(string, str1, 3);
string[3] = '\0';
printf("%s\n", string);
return 0;
}
如果你不是想从第1位开始截?。?比如你想从第5位截?。?则改为
strncpy(string, str1 5, 3);
后面的3表示长度 , 就是从第5位后面的3个字符
补充回答:
strncpy(string, str1 3, 2); /*打印出来第4、5位*/
急急C语言查找子字符串char* search(char* str, char ch)
{
char *pmax, *p, *p1;
intmax;
pmax = NULL;
max = 0;
p = str;
while(1)
{
while(*p != NULL*p !=ch) p;
if(*p== ch)
{
for(p1=p; *p==ch; p);
if(p-p1max)
{
max = p-p1;
pmax = p1;
}
}
}
return pmax;
}
关于C语言取子串函数实例和c语言字符串取子串的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读