//F1传指针,再将值返回
#include <stdio.h>
int test(char* pa,int count)
{
while (*pa != '\0')
{
count++;
pa++;
}
return count;
}
int main()
{
int count = 0;
char arr[] = "abcdef";
int len = test(arr, count);
printf("%d\n", len);
return 0;
}
//F2传arr[]
#include <stdio.h>
test(char arr[], int count)
{
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < sz-2; i++)
{
int t = arr[i];
count++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
int count = 0;
int len = test(arr,count);
printf("%d\n", len);
return 0;
}
F3//传指针不返回count直接在调用函数中打印
#include <stdio.h>
void test(char* pa)
{
int count = 0;
while (*pa != '\0')
{
count++;
pa++;
}
printf("%d\n", count);
}
int main()
{
char arr[] = "abcdef";
test(arr);
return 0;
}
F4:指针-指针法
#include <stdio.h>
#include <string.h>
int my_strlen(char* str)
{
char* start = str;
while (*str != '\0')
{
str++;
}
return(str - start);
}
int main()
{
int len = my_strlen("abcdef");
printf("%d\n", len);
return 0;
}
F5:assert
#include <stdio.h>
#include <assert.h>
int my_strlen(const char* str)
{
int count = 0;
assert(str);
while (*str != '0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "hello bit";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}