一、查找子字符串
1.test.c
#include <stdio.h>
int FindSubString(char* Sub,char* Str);
int main()
{
char *a = (char*)malloc(10);
char *b = (char*)malloc(10);
printf("Input a:\n");
scanf("%s",a);
printf("Input b:\n");
scanf("%s",b);
//char b[7] = "561234";
int c = FindSubString(a,b);
free(a);
free(b);
printf("c is %d\n",c);
return 0;
}
int FindSubString(char* Sub,char* Str)
{
char* tmpStr = Str;
char* tmpSub = NULL; //add by tankai
if(Sub==NULL || Str==NULL) return -1;
while(*Str!='\0')
{
//add by tankai
if(*Str!=*Sub)
{
Str++;
continue;
}
//end tankai
//char* tmpSub = Sub;
tmpSub = Sub; //modify by tankai
while(*tmpSub!='\0')
{
if(*tmpSub!=*Str) break;
else
{
tmpSub++;
Str++;
}
}
if(*tmpSub=='\0') return Str - tmpStr - (tmpSub - Sub); //add by tankai
}
//if(*tmpSub=='\0') return Str - tmpStr - (tmpSub - Sub);
//else return -1;
return -1;
}
2.gcc -g -o test test.c
3.运行
Input a:
1234
Input b:
561234
c is 2
二、查找子字符串
1.test.c
#include <stdio.h>
int FindSubString(char* Sub,char* Str);
int main()
{
char *a = (char*)malloc(10);
char *b = (char*)malloc(10);
printf("Input a:\n");
scanf("%s",a);
printf("Input b:\n");
scanf("%s",b);
//char b[7] = "561234";
int c = FindSubString(a,b);
free(a);
free(b);
printf("c is %d\n",c);
return 0;
}
int FindSubString(char* Sub,char* Str)
{
int len = strlen(Sub);
int num = 0;
while(*Str != '\0')
{
if(strncmp(Sub,Str,len) == 0) return num;
else
{
Str ++;
num ++;
}
}
return -1;
}
2.gcc -g -o test test.c
3.运行
Input a:
1234
Input b:
561234
c is 2
三、排序
1.vi px.c
#include <stdio.h>
void Px(int* a,int num);
int main()
{
int a[] = {8,7,5,6,3,4,1,2};
Px(a,8);
return 0;
}
void Px(int* a,int num)
{
int i = 0;
int j = 0;
int tmp = 0;
for(i = num;i >= 0; i--)
for(j = i;j >= 0; j--)
{
if(a[i] >= a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
return;
}
2.gcc -g -o px px.c
3.运行
(gdb) p a
$1 = {8, 7, 6, 5, 4, 3, 2, 1}