当前位置:首页 » 编程语言 » 用c语言指针计算字符串长度
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用c语言指针计算字符串长度

发布时间: 2022-03-03 23:00:56

c语言计算字符串的长度(用指针)

#include<cstdio>

int main()

{

char s[20];

char*p;

printf("please input a string(less than 20 character): ");

//scanf("%s",s);不能读入空格

gets(s);

p=s;

while(*p!='')

p++;

printf("The string lenth is%d ",p-s);

return 0;

}

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d ",a);

输出结果为a=1234。

(1)用c语言指针计算字符串长度扩展阅读:

main()函数的可以包括两个参数

第一个参数的类型为int型;

第二个参数为字符串数组。

通常情况下,将第一个参数命名为argc,第二个参数为argv(当然参数名字可以换)。由于字符串数组有两种表达方式,因此,main函数存在两种书写方法:

1、形式一:

int main(int argc,char*argv[])//这里使用char*argv[]

{

return 0;

}

2、形式二:

int main(int argc,char**argv)//这里使用char**argv

{

return 0;

}

使用方法

参数的含义

int argc:表示字符串的数量argc=1+用户输入的字符串数目,操作系统负责计算数量,程序员不用管,只需要正确使用即可,例如用户输入2个字符串,argc=1+2=3;

char*argv[]:字符串的数组,即多个字符串,形式如下:

argv[0]=可执行文件名称,例如test.exe(非用户输入,操作系统根据可执行文件名称自动生成)

argv[1]=字符串1

argv[2]=字符串2

argv[3]=字符串3

Ⅱ c语言 计算字符串长度

C语言的字符串是由字符数组形式保存的,并约定''(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到''结束,所有字符的个数,不包括''本身。

要获得字符串长度,有两种方法可以使用,使用库函数strlen()。strlen声明在string.h中,原型为int strlen(char *str);功能为求str的长度,并返回。对于字符串str, 可以用代码求长度。当str[len]为0时,退出循环,退出后的len值就是str的长度。

拓展资料:使用strlen函数,包含在头文件string.h里,功能就是计算字符串s的(unsigned int型)不包括''在内的长度。

Ⅲ 1. 编写程序,计算一个字符串的长度。(利用指针变量)

for循环中,i先自加再判断,在i=4时,循环继续,之后i自加(i=5),再判断不满足条件,跳出循环。此时i已经等于5.所以输出的就是5啦。

Ⅳ C语言,输入字符串计算字符长度

你的代码出现问题的原因是scanf("%s",&a);
,a是一个char类型的变量,系统为它分配了一个字节的内存空间,但是你却输入了一个字符串到以a的地址为首地址的一段连续的内存空间里,这样就出现了越界错误.但是printf函数并不检查越界错误,它会按正常的方法执行,然后程序统计出长度,打印出来结果.但是返回到调用main函数的操作系统后,系统会发现越界错误,所以在结果显示出来后才出错.至于你说的输入5个以下不会出错,也许是偶然,也许跟你的编译器有关.我用VS2005测试,只要输入就会出错。
如果你是只想求出输入的字符串的长度而不要求保存输入的字符串,下面的代码更好。你的标准输入缓冲区有多大,那么它就可以求出多长的字符串的长度,不会有越界。
#include
int
main()
{
int
len=0;
//getchar()函数从标准输入设备(即键盘)接收一个字符,返回该字符的ASCII码.因为回车被输入时被转换成换行符(LF,ASCII码为10),所以getchar()返回10时就知道输入结束了.
while(getchar()!=10)
len++;
printf("It's
length
is
%d.\n",len);
return
0;
}

Ⅳ C语言,指针,用指针方法求字符串的长度,我的方法错哪了

char*s1;//新制作了一块门牌号,上面写的是北大街S1号
gets(s1);//往门牌号里装人
//s1仅仅是一块门牌号而已,并没有钉在一个房间上
//也就是说,正确的流程是:新做了一块门牌号,并且要给它指定一个房间,门牌号才能代表这个房间,否则一个没有挂在房间上的门牌号毫无意义.只能扔在库房里吃灰
------------------
char*s1;//新制作了一块门牌号
s1=(char*)malloc(sizeof(char)*100);//给这块门牌号新修一个房间,这个房间能装100个char类型的人
gets(s1);//开始装人.

Ⅵ C语言,用指针编写一个求字符串长度的函数(不要用strlen函数)

int
strlen(char
*pchar)
{
int
nlen
=
0
;
while
(pchar[nlen]
!=
'\0')
{
nlen
++
;
}
return
nlen
;
}
因为字符串都是以一个\0结尾的
所以说计算出字符串长度的方法很多

Ⅶ 用C语言编程序:要求用指针方法处理:写一函数,求一个字符串的长度。字串必须为char *str="

#include<stdio.h>
int mstrlen(char *str) { int k=0; while ( *str ) { k++; str++; } return k; }
void main()
{ char *str="1234abcd";
printf("字符串'%s'的长度为%d\n",str,mstrlen(str));
}

Ⅷ C语言:利用指针编写程序,统计字符串的长度

#include <stdio.h>
int main()
{

char str[100];
gets(str);
char *s = str;
int count =0;
while(*s){
count++;
s++;
}
printf("Length of the string is %d\n",count);
return 0;
}

Ⅸ C语言,编程,用指针方法求字符串的长度,我这个错哪了,求大神指导!

打错字了.
p=NULL.
更正确的做法 应该是
free(p);
p=NULL;
算法上没什么问题. 改成for(;*p; p++); 然后直接打印k更好一些.

Ⅹ c语言,用函数计算字符串长度

getchar()函数的原型是 int getchar( void )
返回值是整型的
功能是:从标准输入中读取一个字符,也就是键盘敲击字符,只接收单个字符
可以用gets()函数来接收多个字符
这里的 s 接收的是该字符的ASCII码,非长度。
如果从原基础上改可以这样
int i;
char s[20]; /*字符串需要长度*/
gets( s );
i = num( s );
int num( char *s ) /* 这里的指针 ,后面学得到*/
{
}
套上去就可以了