c语言编写求字符串函数 c语言求字符串长度

c语言:编写一个函数求给定字符串长度?方法一:数组方式
代码如下:
lt;span style="font-size:18px;"gt;#includelt;stdio.hgt;
#includelt;assert.hgt;
int my_strlen(char const*str)
{
int count=0;
assert(str);//断言,判断指针的有效性
while(*str++!=NULL)
{
count++;
}
return count;
}
int main()
{
char arr[30]="trouble is a friend.";
printf("%d\n",my_strlen(arr));
getchar();
return 0;
}lt;/spangt;
运行结果:
方法二:指针方式
说明:当两个指针都指向同一个数组中的元素 , 指针减指针就是指针与指针之间元素的个数;两个地址相加没有实际意义 。
代码如下:
lt;span style="font-size:18px;"gt;#includelt;stdio.hgt;
int my_strlen(char const*str)
{
char const*tmp=str;
while(*str!='\0')
{
str++;
}
return str-tmp;
}
int main()
{
char arr[30]="trouble is a friend.";
printf("%d\n",my_strlen(arr));
getchar();
return 0;
}lt;/spangt;
c语言编程 编写求字符串长度的函数int strlen(char*s),在主函数中调用该函数输出指定字符串的长度思路c语言编写求字符串函数:因为字符串都是以'\0'作为结束标志c语言编写求字符串函数,所以可以从字符串的第一个位置开始遍历,直到出现'\0'停止遍历,并每次下标后移,字符串的长度加1,最后返回字符串长度 。
参考代码:
#include "stdio.h"
int strlen(char *s){//求字符串长度函数
int n;
for(n=0;s[n]!='\0';n++);
return n;
}
int main() {
char a[100];
gets(a);
printf("%d\n",strlen(a));
return 0;
}
/*
运行结果:
wqerqew
7
*/
C语言求一个关于字符串的函数可利用strstr函数 。
strstr函数功能是找出字符串中特定字符串第一次出现的位置 。如果找到 , 返回字符串中出现特定字符串的地址;如果没找到,返回空指针 。如果要返回值是bool型的话,可以自写一个函数根据strstr的返回值 , 判断自写函数的返回值 。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不区分大小写,可以用strlwr(转换为大写)或strupr(转换为小写)将两字符串同一转换为大写(或小写)再作查找 。
C语言用指针法编写求字符串长度的函数 , 下面是我的代码,我知道有明显错误 , 后面的调用不懂 , 还求高手指点1.你的字符串输入函数格式不对c语言编写求字符串函数,scanf("%s",A);应改为scanf("%s",a);数组名a就是这个数组的首地址指针(可以这么理解) 。
【c语言编写求字符串函数 c语言求字符串长度】2.你的计算字符串长度的函数有问题,首先i没有初始化为0,其次sum不能累加i , 直接返回i即可c语言编写求字符串函数;还有那个空字符的斜杆打反了 。
3.你的求字符串长度的函数返回了一个只但是却定义为void无返回值型 。
4.最后输出函数里面直接输出了局部变量sum(这本来是一个错误),又没要调用计算字符串长度的那个子函数 。
修改后的程序:
#include
stdio.h
#define
A
20
int
qiuchangdu(char
*p)
{
int
sum=0;
while(*p++!='\0')sum++;
return
sum;
}
void
main()
{
char
a[A];
printf("请输入一串字符串");
scanf("%s",a);
printf("字符串长度为:%d\n",qiuchangdu(a));
}

推荐阅读