''结尾的。1、第二个元素就是所以得到字符串长度为"og:type" content="webpage">''结尾的。1、第二个元素就是所以得到字符串长度为" /> ''结尾的。1、第二个元素就是所以得到字符串长度为"> C编写程序,求所输入字符串的长度(要求不能用strlen( )函数直接求)_CMS教程_内存溢出

阅读12

C编写程序,求所输入字符串的长度(要求不能用strlen( )函数直接求),第1张

strlen的结果要在运行的时候才能计算出来,主要用来计算字符串

长度

,不是类型占内存的大小,strlen只能用char做参数,且必须是以''\0''结尾的。

1、第二个元素就是\0

所以得到字符串长度为1

2、\t

\v

\\都是转义字符,为三个字符,后面又是\0,所以长度为3

3、\x69就是16进制的69,十进制为105,查看ascii表对应字符,而\xxx指的是一个八进制值所对应字符,但是\082显示不是,八进制只有0-7的数字,所以这里只是一个\0

和数字

82

字符串长度为1

如果要获得每个数组中有多少个字符可以考虑用sizeof

可以将整数当做字符串(字符串长度不超过10)接收,然后反向输出字符数组元素即可。字符串实际长度可以用strlen函数来计算。方法

程序

如下:

#include<stdioh>

#include<stringh>

main()

{char a[10];int i,j;

scanf("%s",a);

j=strlen(a);

for(i=j-1;i>=0;i--)

printf("%c",a[i]);

printf("\n");}

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位 *** 作

实现高效的C语言编写的第三招----使用位 *** 作,减少除法和取模的运算。

在计算机程序中,数据的位是可以 *** 作的最小数据单位,理论上可以用“位运算”来完成所有的运算和 *** 作。一般的位 *** 作是用来控制硬件的,或者做数据变换使用,但是,灵活的位 *** 作可以有效提高程序运行的效率。

参考资料来源:百度百科-C语言

c 程序, 用自定义函数 my_strlen,例子如下:

#include<stdioh>

int my_strlen(char s){

int n=0;

while(1){

if (s[n]!='\0')n++; else return n;

};

}

int main()

{char s[]="abcde 123";

int L;

L = my_strlen(s);

printf("the length of the string is: %d\n",L);

}

输出:the length of the string is: 9

C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项。

C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度。

在程序里,一般会用strlen()函数或sizeof来获取一个字符串的长度,但这2种方法获取的字符串的长度其实是不一样,我们用如下函数进行测试:

void test6()

{

     char s1[20] = "hello world";

     char s2[20] = {'h','e','l','l','0',' ','w','o','r','l','d','\0'};

     char s3[] = "hello\0 world";

     char s4[] = {'h','e','l','l','0','\0',' ','w','o','r','l','d','\0'};   

     printf("%d\t%d\t%d\t%d\n",strlen(s1),strlen(s2),strlen(s3),strlen(s4));

     printf("%d\t%d\t%d\t%d\n",sizeof(s1),sizeof(s2),sizeof(s3),sizeof(s4));

}

注意,该函数里面定义了4个字符串,基本数据都是“hello world",但需要注意的是,字符串s1和s2给定了字符串数组的大小为20,然后使用2种方式进行赋值;字符串s3和s4是s1和s2对比的字符串,区别就是s3和s4字符串中间插入了一个'\0'。该函数运行的结果如下:

从运行结果可以看出,strlen()函数和sizeof求字符串长度需要注意下面几点:

1 strlen函数求得的字符串长度是从字符串第一个元素到第一个'\0'之间元素的个数(如果字符串中间有'\0',则结果不是整个字符串的长度),同时不包括该'\0'

2 sizeof求得的结果是存储该字符串的变量占用的空间大小,因而一定会包括'\0'若'\0'后还有空余的空间,也会包含到结果里面

解释(与2种求值方式的实现原理有关):

1 strlen()的一种实现就是遍历字符串,遇到'\0'就终止,因而返回的结果是第一个'\0'前字符元素的个数

2 sizeof 常用来求变量占用内存空间的大小,因而它返回的是存储字符串的变量所占用的内存空间大小,用来求字符串的长度,只在特定情况下可行,即字符数组刚好被一个字符串占满。

谢谢采纳。

01

首先,我们输入头文件:#include<stdioh>

#include<stringh>

02

接着,我们输入程序,请求用户输入字符串,再计算字符串的长度。

03

运行程序,检测没有错误后,点击右上方的"!",执行程序。

04

程序执行结果如图所示,我们任意输入一个字符串。

05

按enter键,如图所示,系统就计算出了字符串的长度。

#include <stdioh>

#include <stdlibh>

int main()

{

char s[1000];

int i;

gets(s); //读入字符串

i = -1;

while(s[++i] != '\0') //计算字符串长度

;

printf("%d\n",i); //输出长度

return 0;

}

//请采纳。

c语言编写计算字符串长度的程序是一个经典的面试问题,有几种经典的答案:

1,循环

定义一个指针 char p  = str;

int count = 0;

while (p != \0){

p++; count++;

}

2, 递归

3,最简短的,利用地址的差

while(p++);

len = p - str;

以上就是关于C编写程序,求所输入字符串的长度(要求不能用strlen( )函数直接求)全部的内容,包括:C编写程序,求所输入字符串的长度(要求不能用strlen( )函数直接求)、如何在一个数组中存储一个字符串的长度、编写一个程序 求字符串的长度 不使用strlen等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:
https://www.54852.com/zz/10125152.html函数
字符
(0)微信扫一扫打赏 支付宝扫一扫微信扫一扫
支付宝扫一扫
魔兽战网魔兽战网
一级用户组
VS2008 MFC程序打的断点在调试的时候无效,显示空心带个小锁的形状,请教各位有知道原因的吗
上一篇
2023-05-05
高中信息技术奥赛主要考什么内容PASSCAL言语的。
2023-05-05

发表评论 后才能评论
提交

    评论列表(0条)
    魏书
    保存{label}{label}{label}{label}