首先需要告诉你的是'\0'不是手动输入的,而是字符串数组自动生成的,我们通过键盘是不可以直接输入'\0'的,他的'\0'是在你输入\0或者/0后自动追加的'\0',所以你不用纠结这个问题。附上我自己的代码- #include<stdio.h>
- #define MAX 100
- char s[MAX];
- int string_len(char *s)
- {
- int n=0;//定义变量n用来储存字符串数组a的长度
- for(int i=0;i<100;i++)//通过循环数组s的长度次数来对a[i]与\0进行比较
- {
- if(s[i]=='\0')//如果a[i]不等于\0那么说明a[i]还不是数组的尽头
- {
- break;//所以n要自加
- }
- else
- {
- n++;//相反则跳出for循环
- }
- }
- return n;//函数返回n也就是储存数字a长度的变量
- }
- int main()
- {
- scanf("%s",s);
- int m=string_len(s);//使用一个变量来储存函数返回的值
- printf("%d\n",m);//打印变量m的值也就是字符串s的长度
- return 0;
- }
复制代码
最后建议尽量少用gets输入字符 ,容易造成地址越界 |