字符串的常见的操作字串匹配等没有用结构体版
2010-12-12 23:16
260 查看
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
//求字符串的长度
int StrLength(char *S)
{
int n=0;
for(;*S++;)
n++;
return n;
}
//将字符串A的第pos个位置m个元素复制到B中
int SubString(char *Sub,char *S,int pos,int m)
{
//int a;
int b = 0;
// if(*S) return 0;
for(;m>0 ; pos++,m--)
{
Sub[b] = S[pos];
b++;
}
Sub[b]='/0';//字符串要遇到结束符才结束
return 0;
}
void Print(char *S)
{
StrLength(S);
for(int i=0;i<=StrLength(S);i++)
printf("%c",S[i]);
}
int StrCompare(char *S1,char *S2)
{
for(;*S1==*S2;S1++,S2++)
if(!*S1) return 0;
if(*S1>*S2) return 1;
else if(*S1==*S2) return 0;
else return -1;
}
int Index(char *S,char *T,int pos)
{
int n,m,i;
char *sub=NULL;
if(pos>0)
{
n = StrLength(S);
m = StrLength(T);
i = pos;
sub=(char *)malloc(sizeof(char)*m);
while(i<=n-m+1)
{
SubString(sub,S,i,m);
if(StrCompare(sub,T)!=0)
++i;
else return i+1;
}
}
return 0;
}
void main()
{
int n,k,pos=1,p;
int i = 2,m = 3;
char *S= "abcdefghjll";
char *S1 = "defgh";
char *Sub;
int POS,LEN;
Sub = (char*)malloc(sizeof(char)*10);
printf("字符串的S为:/n");
Print(S);
printf("字符串的S1为:/n");
Print(S1);
n = StrLength(S1);
printf("字符串的长度为S:/n");
printf("%d",n);
printf("/n");
printf("比较字符串S和S1:/n");
k= StrCompare(S1,S);
printf("%d",k);
printf("/n");
printf("求串S的字串:请输入位置和长度/n");
scanf("%d%d",&POS,&LEN);
SubString(Sub,S, 3,3);
Print(Sub);
p = Index(S,S1, pos);
printf("%d/n",p);
printf("/n");
}
/*int Strlength(char s[])
{
int i = 0;
int len = 0;
while(s[i++])//for(;s[i++];)
len++;
return len;
}
int StrLength(char *S)
{
int n = 0;
for(;*s;*S++)
{
if(*s!='/0')
n++
}
return n;
}*/
# include <string.h>
# include <stdlib.h>
//求字符串的长度
int StrLength(char *S)
{
int n=0;
for(;*S++;)
n++;
return n;
}
//将字符串A的第pos个位置m个元素复制到B中
int SubString(char *Sub,char *S,int pos,int m)
{
//int a;
int b = 0;
// if(*S) return 0;
for(;m>0 ; pos++,m--)
{
Sub[b] = S[pos];
b++;
}
Sub[b]='/0';//字符串要遇到结束符才结束
return 0;
}
void Print(char *S)
{
StrLength(S);
for(int i=0;i<=StrLength(S);i++)
printf("%c",S[i]);
}
int StrCompare(char *S1,char *S2)
{
for(;*S1==*S2;S1++,S2++)
if(!*S1) return 0;
if(*S1>*S2) return 1;
else if(*S1==*S2) return 0;
else return -1;
}
int Index(char *S,char *T,int pos)
{
int n,m,i;
char *sub=NULL;
if(pos>0)
{
n = StrLength(S);
m = StrLength(T);
i = pos;
sub=(char *)malloc(sizeof(char)*m);
while(i<=n-m+1)
{
SubString(sub,S,i,m);
if(StrCompare(sub,T)!=0)
++i;
else return i+1;
}
}
return 0;
}
void main()
{
int n,k,pos=1,p;
int i = 2,m = 3;
char *S= "abcdefghjll";
char *S1 = "defgh";
char *Sub;
int POS,LEN;
Sub = (char*)malloc(sizeof(char)*10);
printf("字符串的S为:/n");
Print(S);
printf("字符串的S1为:/n");
Print(S1);
n = StrLength(S1);
printf("字符串的长度为S:/n");
printf("%d",n);
printf("/n");
printf("比较字符串S和S1:/n");
k= StrCompare(S1,S);
printf("%d",k);
printf("/n");
printf("求串S的字串:请输入位置和长度/n");
scanf("%d%d",&POS,&LEN);
SubString(Sub,S, 3,3);
Print(Sub);
p = Index(S,S1, pos);
printf("%d/n",p);
printf("/n");
}
/*int Strlength(char s[])
{
int i = 0;
int len = 0;
while(s[i++])//for(;s[i++];)
len++;
return len;
}
int StrLength(char *S)
{
int n = 0;
for(;*s;*S++)
{
if(*s!='/0')
n++
}
return n;
}*/
相关文章推荐
- Substring with Concatenation of All Words 字符串操作 匹配的字串数
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- 字符串操作常见函数
- Python中字符串的常见操作总结
- 数组和字符串常见操作
- 常见字符串操作汇总
- C字符串操作常见不良习惯
- C语言字符串常见操作
- java---字符串操作(分割,大小写转化,去除首末空格,截取字串,转化成字符数组)
- java常见的字符串操作和日期操作汇总
- 常见字符串操作函数内部实现(一)
- java字符串的常见的操作
- 【代码学习】PYTHON字符串的常见操作
- 字符串常用操作的源码,拷贝、连接、比较、子串匹配
- JavaScript中常见的字符串操作函数及用法
- c#字符串常见操作
- Java中String类(字符串操作)的10个常见问题和解决方法
- C# 常见的字符串操作
- C#字符串常见操作