输出一个字符串,并输出其长度·用指针怎么做;不用指针又怎么写?
Cè¯è¨ä¸å符串é¿åº¦çå½æ°æ¯strlen()ï¼ä¸ä¸ªå符çé¿åº¦ä¸º1ï¼
å½æ°ååï¼
unsigned int strlen (char *s);头æ件ï¼
#include <string.h>åæ°è¯´æï¼s为æå®çå符串ï¼
åè½è¯´æï¼strlen()ç¨æ¥è®¡ç®æå®çå符串s çé¿åº¦ï¼ä¸å æ¬ç»æå符'\0'ï¼
è¿åå¼ï¼è¿åå符串s çå符æ°;
注æï¼strlen() å½æ°è®¡ç®çæ¯å符串çå®é é¿åº¦ï¼éå°ç¬¬ä¸ä¸ª'\0'ç»æã
示ä¾ï¼
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为å车å符ï¼å ä¸ä¸ªåè printf("strlen(str)=%d\n", strlen(str)); return 0;}//è¾åºç»æ:strlen(str)=6 æ¶èµ·
å½æ°ååï¼
unsigned int strlen (char *s);头æ件ï¼
#include <string.h>åæ°è¯´æï¼s为æå®çå符串ï¼
åè½è¯´æï¼strlen()ç¨æ¥è®¡ç®æå®çå符串s çé¿åº¦ï¼ä¸å æ¬ç»æå符'\0'ï¼
è¿åå¼ï¼è¿åå符串s çå符æ°;
注æï¼strlen() å½æ°è®¡ç®çæ¯å符串çå®é é¿åº¦ï¼éå°ç¬¬ä¸ä¸ª'\0'ç»æã
示ä¾ï¼
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为å车å符ï¼å ä¸ä¸ªåè printf("strlen(str)=%d\n", strlen(str)); return 0;}//è¾åºç»æ:strlen(str)=6 æ¶èµ·
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-03-20
字符串长度
就是从字符串开始
到第一个\0的字符数
你这个字符串
包括
a
b
\n
换行的转义
\012
8进制转义
\\
字符\
\"
字符"
然后就是字符串结束符\0了
这个是隐藏的
一共6个字符
于是输出是6
就是从字符串开始
到第一个\0的字符数
你这个字符串
包括
a
b
\n
换行的转义
\012
8进制转义
\\
字符\
\"
字符"
然后就是字符串结束符\0了
这个是隐藏的
一共6个字符
于是输出是6
第2个回答 推荐于2018-03-02
我的方法和楼上的大同小异用指针法:#include ""
void main()
{char str[128];<br> char * p;<br> int count=0;<br> p=str;<br> gets(str);<br> while(*p++!='\0')<br> count++;<br> printf("%d",count);<br>}非指针法(这个方法是调用系统函数,比之自己写的函数简单明了):#include "stdio.h"
#include ""
void main()
{char str[128];<br> gets(str);<br> printf("%d",strlen(str));<br> }本回答被网友采纳
void main()
{char str[128];<br> char * p;<br> int count=0;<br> p=str;<br> gets(str);<br> while(*p++!='\0')<br> count++;<br> printf("%d",count);<br>}非指针法(这个方法是调用系统函数,比之自己写的函数简单明了):#include "stdio.h"
#include ""
void main()
{char str[128];<br> gets(str);<br> printf("%d",strlen(str));<br> }本回答被网友采纳
第3个回答 2012-04-29
while(*t++);这句是核心
*t是指向一个字符的指针,当结束的时候,while判断为否,结束循环,否则,t++指向下一个内存单元。
最后t放在字符串末尾的下一个(字符串末尾的下一个就是第一个'\0')
于是t-s的结果就是字符串的长度加上'\0' 于是再减去1 得到字符串的长度。
*t是指向一个字符的指针,当结束的时候,while判断为否,结束循环,否则,t++指向下一个内存单元。
最后t放在字符串末尾的下一个(字符串末尾的下一个就是第一个'\0')
于是t-s的结果就是字符串的长度加上'\0' 于是再减去1 得到字符串的长度。
第4个回答 推荐于2016-02-07
#include<stdio.h>
#include<string.h>
void main()
{
char s[100];
int i;
gets(s);
i=strlen(s);
printf("%d\n",i);
}这个是不用指针的#include<stdio.h>
#include<string.h>
void main()
{
char s[100],*q;
int i;
gets(s);i=0;
q=s;
for(i=0;i<100;i++,q++){
if(*q=='\0')
break;} printf("%d\n",i);
}这个是用指针的本回答被网友采纳
#include<string.h>
void main()
{
char s[100];
int i;
gets(s);
i=strlen(s);
printf("%d\n",i);
}这个是不用指针的#include<stdio.h>
#include<string.h>
void main()
{
char s[100],*q;
int i;
gets(s);i=0;
q=s;
for(i=0;i<100;i++,q++){
if(*q=='\0')
break;} printf("%d\n",i);
}这个是用指针的本回答被网友采纳