1.查找字符串中的字串
#include<stdio.h>
#include<string.h>
int func(char *str1,char *str2)
{
int i,j;
int count=0;
for( i=0;i<strlen(str1);i++)
{
for( j=0;j<strlen(str2);j++)
{
if(*(str1+i+j)!=*(str2+j)) //+j是爲了字串偏移時,母串也偏移;此時i被標志為0
{
break;
}
}
if(j==strlen(str2)) //統計字串次數
{
count++;
}
}
return count;
}
int main(int argc,char **argv)
{
char str1[50];
char str2[50];
int count=0;
printf("please input two str\n");
scanf("%s",str1);
scanf("%s",str2);
count=func(str1,str2);
printf("子串出現的次數為%d次\n",count);
return 0;
}
2.將字符數組中的中間多餘0元素刪除,合并其它字符,進而構成一個字符串
#include<stdio.h>
int main()
{
char s[]="abc\0de\0fg";
int size=sizeof(s)/sizeof(s[0]);
int i=0;
int j=0;
while(i<size)
{
if(s[i]=='\0')
{
for(j=i+1;j<size;j++)
{
s[j-1]=s[j];
}
size--;
}
else
{
i++;
}
}
printf("%s",s);
return 0;
}
3.冒泡排序
#include<stdio.h>
void sort(int *parr,int len);
void printArray(int *parr,int len);
int main()
{
int arr[]={52,49,80,36,14,58,61,23,97,75};
int len=sizeof(arr)/sizeof(arr[0]);
printArray(arr,len);
sort(arr,len);
printArray(arr,len);
return 0;
}
void printArray(int *parr,int len)
{
int i=0;
while(i<len)
{
printf("%d ",*parr++);
i++;
}
printf("\n");
}
void sort(int *parr,int len)
{
int i=0;
int j=0;
int temp=0;
for(i=0;i<len;i++)
{
for(j=0;j<len-1-i;j++)
{
if(parr[j]>parr[j+1])
{
temp=parr[j];
parr[j]=parr[j+1];
parr[j+1]=temp;
}
}
}
}
4.判斷系統大小端
int isLitterEndian()
{
union
{
int i;
char a[4];
}test={0};
test.i=1;
return (test.a[0]==1);
}