c语言,输入字符串并计算字符长度

作者&投稿:卫贝 (若有异议请与网页底部的电邮联系)
C语言字符串长度函数是怎么计算字符的长度的?~

根据查找到字符串中 '\0'字符的位置结束. '\0' 前面的个数为该字符串长度

比如 "hello world!" 字符串长度为12 (字符串存储时结尾自动加上\0字符)
如果这样写 "hello \0world!" 字符串长度为6 (空格也算一个字符)

C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符。
方法:
自定义函数求长度
使用strlen()函数
使用sizeof()操作符
自定义函数:
int cont_str(char *s)
{
int i = 0;
while ( str[i++] != '\0') ;
return i;
}
使用string头文件中的strlen()函数:
strlen(str); //假设str为待求的字符串数组名
使用sizeof()操作符:
sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名
注意:strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘\0’;
sizeof()操作符求出的长度包含字符串末尾的结束符 ‘\0’;
当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。

int i=0,*j; 定义了一个整型指针变量j,j++会跳过一个整型数据空间(4)
如:输入数据为:abcdefg
j=a; 此时j指向a所在的地址
j++; j跳过四个字节,j指向e所在地址,因此,你的统计会不准确。
之所以输出21,只能说,你的程序运行中,扫描内存中的数据是以\0结尾的,而只有找到21*4的位置才发现\0,这是运行时的情况,不是必然的。
修改成char *j;就好了。这样j++会跳过一个字符型数据空间(1),才能正确遍历数组!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[50];
int i=0;
char *j;
gets(a);//输入字符串
j=a;
while(*j!='\0')
{
j++;//指针指向下一个数组字符
i++;
}
printf("字符串为%s,字符串的长度为%d",a,i);
system("pause");
}
这程序没什么大问题啊,除了一处语法错误,我已经改过来了

把j的类型改成char*
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[50];
int i=0;
gets(a);//输入字符串
char *j=a;
while(*j!='\0')
{
j++;//指针指向下一个数组字符
i++;
}
printf("字符串为%s,字符串的长度为%d",a,i);
system("pause");
}

直接用strlen(a)函数就可以了。

int i=0,*j;改成

int i=0;
char *j;试试


c语言输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
在C语言中,编写一个程序可以统计并输出给定字符串中的大写字母、小写字母、数字字符和其他字符的数量。程序使用指针遍历字符串,通过条件判断来区分各类字符。以下是该程序的示例代码:include<stdio.h>voidmain(){chara[100];intsum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\\0';p++)...

c语言输入字符串
使用C语言中的`scanf`函数或`fgets`函数可以输入字符串。下面是两种方法的示例代码:使用`scanf`函数输入字符串:c char str[100]; \/\/ 定义字符串数组,假设最大长度为100 printf;scanf; \/\/ 输入字符串 使用`fgets`函数输入字符串:c char str[100]; \/\/ 定义字符串数组,假设最大长度为100 prin...

在C语言中如何实现用键盘输入一个字符串,并打印出来?
在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为...

在C语言中如何实现用键盘输入一个字符串,并打印出来?
在C语言中输入字符串后然后打印出来的编程方法如下:1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。2.接着使用gets()函数来获取键盘输入的字符串。一般格式为gets(定义的字符数组名)。3.然后再使用puts()函数来输出之前输入的字符串内容。一般格式puts(定义的字符数组名)。4....

输入一个字符串并输出其中的字符和该字符的数目。c++ c语言都可以
include <stdio.h>#include <string.h>int main() { int n, i; char s[100000]; char num[128] = {0}; printf("输入字符串:"); scanf("%s", s); for (i=0;i<strlen(s);i++) { num[s[i]]++; } for (i=0;i<128;i++) { if (num[...

C语言编程:输入一个字符串并存入a数组,a数组赋值给b数组。。
include<stdio.h> include<string.h> void main(){ char a[100]="",b[100]="";int i=0;int j=0;gets(a);while(a[i]!='\\0'){ if(a[i]>='a'&&a[i]<='z'){ b[j++]=a[i];} i++ ;} puts(b);}

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
void main(){ char a[100];int sum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\\0';p++){ if(*p>='0'&&*p<='9')sum0+=1;else if(*p>='a'&&*p<='z')suma+=1;else if(*p>='A'&&*p<='Z')sumA+=1;} printf("数字字符数量:%d\\n小写字母字符数量:%d\\n大写...

怎样输入一个字符串,并输出?(c语言)
上面几个都是用的C语言的,我给你一个C++版本的 include<iostream> include<string> using namespace std;void main(){ string st1;cout<<"请输入你要输入的字符串"<<endl;cin>>st1;cout<<"你输入的字符串是:"<<st1<<endl;}

c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出...
"stdio.h"main(){ char str[100],ch; \/*定义str字符串,定义ch用来存放要统计的字符*\/ int cnt=0,i; \/*定义cnt用作计数器,初始值为0*\/ \/*输入字符串*\/ printf("请输入字符串:"); gets(str); \/*输入要统计的字符*\/ printf("请输入要统计的字符:"); scanf(...

c语言怎么输入一个字符串,并赋给字符指针
C语言字符串的学习,输入指定字符串,并且计算字符串的位数

千阳县17814299491: 如何在c语言中计算字符串长度 -
熊诞富马: C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符.方法: 1. 自定义函数求长度 2. 使用strlen()函数 3. 使用sizeof()操作符 自定义函数: int cont_str(char *s) { int i = 0; while ( str[i++] != '\0') ; return i; } 使用...

千阳县17814299491: C语言计算字符串长度的几种方法 -
熊诞富马: 加头文件 string.h 代码如下:1 2charstr[] = "Hello World!"; intlen = strlen(str);

千阳县17814299491: C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其长度 -
熊诞富马: #include<iostream> using namespace std; int main() { int character(char *a); char a[20]; int length; cout<<"请输入一个字符串:"<<endl; cin>>a; length=character(a); cout<<"字符串长度为:"<<length<<endl; return 0; } 扩展资料: return用...

千阳县17814299491: C语言编写程序 求一个字符串S1的长度 -
熊诞富马: #include<string.h>里面有函数:k=strlen(s1). 或者 #include<stdio.h> int main() { int k; char s1[200]; gets(s1); for(k=0;;k++) { if(s1[k]=='/0') break; } printf("%d",k+1); return 0; }

千阳县17814299491: C语言程序求字符串长度 -
熊诞富马: 头文件string.h函数是strlen 如果想要自己实现也很简单 int i = 0, l = 0; while(a[i] != '\0') {l++; } 这样l的值就是字符串的长度

千阳县17814299491: c语言,输入字符串并计算字符长度 -
熊诞富马: int i=0,*j; 定义了一个整型指针变量j,j++会跳过一个整型数据空间(4) 如:输入数据为:abcdefg j=a; 此时j指向a所在的地址 j++; j跳过四个字节,j指向e所在地址,因此,你的统计会不准确.之所以输出21,只能说,你的程序运行中,扫描内存中的数据是以\0结尾的,而只有找到21*4的位置才发现\0,这是运行时的情况,不是必然的.修改成char *j;就好了.这样j++会跳过一个字符型数据空间(1),才能正确遍历数组!

千阳县17814299491: C语言 写一函数,求出字符串的长度,在主函数中输入字符串,并输出其长度,不要用strlen函数 -
熊诞富马: main你自己写吧,函数代码如下:slen(char s[]){ int n=0; while (s[n]) n++; return(n-1); }

千阳县17814299491: 在c语言中怎么判断一输入的串字符的长度,最好给我编个完整的程序,谢谢! -
熊诞富马: #include <stdio.h> #include <stdlib.h>int main() {char s[1000];int i; gets(s); //读入字符串 i = -1;while(s[++i] != '\0') //计算字符串长度; printf("%d\n",i); //输出长度 return 0; }//请采纳.

千阳县17814299491: 请用C语言设计一个程序:输入一个字符串,计算其长度. -
熊诞富马: #include <stdio.h> int main() { int n=0; while(getchar()!='\n') n++; printf("%d",n); }

千阳县17814299491: c语言 计算字符串长度 -
熊诞富马: 使用strlen函数,包含在头文件string.h里,功能就是计算字符串s的(unsigned int型)不包括'\0'在内的长度,我不敢贴代码,你自己百度下.我一贴百度就抽了,屏蔽我的回答!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网