1.(不使用库函数)求字符串长度
字符串结束的标志是‘\0’,用循环即可。
void StringLength(char *arr)
{
int i = 0;
while(arr[i] != '\0')
{
i++;
}
printf("字符串的长度是%d\n",i);
}
进阶:不引入变量,求字符串长度
int Strlen(char *arr)
{
if(*arr == '\0')
{
return 0;
}
return Strlen(arr+1)+1;
}
2.字符串排序
排序:you are beautiful
void StringSort(char arr[][15],int len)
{
int i = 0;
int j = 0;
char tmp[20];
printf("排序前:");
for(i = 0;i < len;i++)
{
printf("%s ",arr[i]);
}
for(i = 0;i < len-1;i++)
{
for(j = 0;j < len-i-1;j++)
{
if(strcmp(arr[j],arr[j+1]) > 0)
{
strcpy(tmp,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],tmp);
}
}
}
printf("\n\n排序后:");
for(i = 0;i < len;i++)
{
printf("%s ",arr[i]);
}
}
3.整数的选择排序
每一次从带排序的数据中找出最小或最大的元素,放在起始位置,直到排完所有的元素。
void ChooseSort(int arr[],int len)
{
int i = 0;
int j = 0;
int tmp = 0;
if(len <= 1)
{
return;
}
printf("排序前:");
for(i = 0;i < len;i++)
{
printf("%d ",arr[i]);
}
for(i = 0;i < len-1;i++)
{
for(j = i+1;j < len;j++)
{
if(arr[j] < arr[i])
{
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
printf("\n\n排序后:");
for(i = 0;i < len;i++)
{
printf("%d ",arr[i]);
}
}