C语言要限定输出字符串的长度应该怎么操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言要限定输出字符串的长度应该怎么操作?相关的知识,希望对你有一定的参考价值。
参考技术A 在C语言中,输入输出字符串有以下两种方式:\\r\\n1 用scanf/printf输入输出。\\r\\nscanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也在其支持范围内。\\r\\n格式化字符为%s。\\r\\n定义\\r\\nchar str[100];\\r\\n输入\\r\\nscanf("%s",str);\\r\\n输出\\r\\nprintf("%s",str);\\r\\n\\r\\n2 C语言还支持专门的字符串输入输出函数:gets/puts。\\r\\ngets的作用为,读入一行输入,并将读到的换行符替换为字符串结束符。\\r\\nputs的作用为,将字符串单行输出,即输出字符串内容后,会自动在结尾增加换行。\\r\\n定义\\r\\nchar str[100];\\r\\n输入\\r\\ngets(str);\\r\\n输出\\r\\nputs(str);c语言求字符串长度
输出一个字符串,并输出其长度·用指针怎么做;不用指针又怎么写?
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 收起 参考技术A 字符串长度
就是从字符串开始
到第一个\0的字符数
你这个字符串
包括
a
b
\n
换行的转义
\012
8进制转义
\\
字符\
\"
字符"
然后就是字符串结束符\0了
这个是隐藏的
一共6个字符
于是输出是6 参考技术B 我的方法和楼上的大同小异用指针法:#include "stdio.h"
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 "string.h"
void main()
char str[128];<br> gets(str);<br> printf("%d",strlen(str));<br> 参考技术C while(*t++);这句是核心
*t是指向一个字符的指针,当结束的时候,while判断为否,结束循环,否则,t++指向下一个内存单元。
最后t放在字符串末尾的下一个(字符串末尾的下一个就是第一个'\0')
于是t-s的结果就是字符串的长度加上'\0' 于是再减去1 得到字符串的长度。 参考技术D #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);
这个是用指针的
以上是关于C语言要限定输出字符串的长度应该怎么操作?的主要内容,如果未能解决你的问题,请参考以下文章