关于C语言c语言中字符串的定义问题

C语言求字符串长度的问题_百度知道
C语言求字符串长度的问题
='0&#39.h&gt,b);n&quot,*p;;;%d&#92,&a); scanf(&*(p+n);main(){ int b=0; printf(&;\n++)b++,n;%s& p=&a; for(n=0#include&stdio
提问者采纳
#include&lt,那么它就可以求出多长的字符串的长度,ASCII码为10),也许跟你的编译器有关,&a).h&gt,但是你却输入了一个字符串到以a的地址为首地址的一段连续的内存空间里。如果你是只想求出输入的字符串的长度而不要求保存输入的字符串;&#47,系统会发现越界错误;s length is %d,这样就出现了越界错误; ,所以在结果显示出来后才出错;int main(){ int len=0;It&#39。你的标准输入缓冲区有多大;getchar()函数从标准输入设备(即键盘)接收一个字符,系统为它分配了一个字节的内存空间,也许是偶然,然后程序统计出长度,len);stdio!=10) len++;%s&quot.&#92.但是printf函数并不检查越界错误;,返回该字符的ASCII码.至于你说的输入5个以下不会出错;&#47.因为回车被输入时被转换成换行符(LF,它会按正常的方法执行. while(getchar();n&quot,只要输入就会出错,不会有越界; printf(&quot,下面的代码更好,a是一个char类型的变量.但是返回到调用main函数的操作系统后你的代码出现问题的原因是scanf(&quot,所以getchar()返回10时就知道输入结束了; return 0;,打印出来结果.我用VS2005测试
提问者评价
其他类似问题
按默认排序
其他6条回答
;n&quot,不能用来存字符串; &#47。字符串要字符数组; for(n=0; / p=&a.h&就可以scanf(&这里a是数组首地址; 大小看你要求变,&a);你这个a是一个字符变量,n;/%d\;*(p+n); main() { char a,b);n++)b++; /!=';&#47,所以这里改p=a;%s&quot,*p;/0' printf(&quot,a);&#92。a[1000];%s&quot。int b=0;这里scanf(&quot#include&stdio
#include&stdio.h& main() { char a[100],*p; \\输入字符串的时候应该以数组的形式. p=a; scanf(&%s&,a); for(n=0;*(p+n)!='\0';n++); \\可以不使用变量b,直接用n做记数变量.printf(&%d\n&,n); }编译通过.
错误有两个!1.char型的字符变量a只代表一个字符,不能代表一个字符串。2.用scanf输入字符串时,出了个控制符要用%s外,后面的应是个地址。若a是个字符数组,应该用a,而不是&a。况且用scanf输入时不能输入空格。你可以这样编:#include&stdio.h&#include&string.h&void main(){char a[80],*p;p=a;gets(a);for(n=0;*p!='\0';p++,n++);printf(&It's length is %d&,n);}visual c++编译通过,希望能帮助你
用不着5个啊。你一共就开辟了1个字符的空间,肯定要错的。
问题可能出现在:scanf(&%s&,&a);
这一句上面。关于地址分配。
你的字符指针没有指向一个具体的空间
字符串的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言文件操作,字符串的问题,经常出现读写错误_百度知道
C语言文件操作,字符串的问题,经常出现读写错误
Jiang准确地讲,邮箱联系,经常出现读入错误:本人的qwe17911@sina。原意帮助的
提问者采纳
;%c&if (buffer == NULL) {fputs (&}resul = fread (i++)printf(&quot,因为C的I&#47,*(buffer+i));i&/}for(int i=0,在处理你的文件;,1,stderr);Reading error&quot,对于文件;0操作基本由函数,在进行操作!!= lSize) {fputs (&quot,lS
if (resul ;文件修改好后在写入文件即可!;C++),wf),不注意的话就会出错,最好把内容全部复制到内存; exit (2),stderr);Memory error& allocate memory to contain the whole file:buffer = (char*) malloc (sizeof(char)*lSize+1)!&#47!!;读入内存后;,我以前也写过,数以特定的输入输出格式不同!!!,详细讨论如有问题可加QQ群(C&#92,动态分配一个文件的所有大小的内存; exit (3);fclose(wf)
大师你好,留下你的QQ号,或者邮箱,我把这个问题发给你。。谢谢啦。
如有需要加群(C\C++)讨论群大家一块学习
提问者评价
你真棒,学习了
其他类似问题
10人觉得有用
字符串的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置: >
> C语言字符串的字符编码有关问题
C语言字符串的字符编码有关问题
iLoveyou & at
C语言字符串的字符编码问题char&*str&=&"abcd你好1234";
我查看了str的内存:
a&&b&&c&&d&&你&&&&好&&&&1&&2&&3&&4&&\0&\0&
61&62&63&64&c4&e3&ba&c3&31&32&33&34&00&00
也就是说“abcd”和“1234”采用ASCII编码,而“你好”采用GB2312编码。
那么str采用的是什么编码呢?如何采用C库实现str转换为UTF-8的编码?
str就是GB2312编码,转UTF-8需借助iconv库。
引用:  C/C++&code 1char&*str&=&"abcd你好1234";obztweb & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-linux下c语言字符串转数字的问题_百度知道
linux下c语言字符串转数字的问题
不知道应该要用什么函数.34”,想要转换到数字?该怎么写程序例如我现在有一个字符串“12
incompatible implicit declaration of built-in function ‘printf’1:1;
printf(&.h&}1;%lf&quot.h&gt,d): return type of ‘main’ is not ‘int’不知道是怎么了:8.34&quot.c写了一下;,printf的头文件也该包括在里面了;stdio:;#include &stdlib:4: error:ctype:1.h&gt,&d);#include & sscanf(c: warning.h&gt.c;void main(){ char c[5] = &12.c,&%g&quot.c.h:20: No such file or directory1: In function ‘main’,问题来了:#include &#include &lt
提问者采纳
;12很好写啊~char c[] = &quot,&;.34&sscanf(c;sscanf的作用是从给定字符串中按照某格式读数据---在我的编译器上你的程序没有问题 你按照我写的试试吧#include &%lf&stdio,&
sscanf(str.h&gt,&d);int main(){
char str[] = &quot.34&%lf&
printf(&%lf&quot,&d);
return 0;12,d);;
提问者评价
问题解决了,谢谢,至于原因现在还没有分析,知道了再告诉你。
其他类似问题
按默认排序
其他1条回答
;#include &lt.h&n&quot#include &printf(&stdlib,n).34;s = 12;n = atof(s);%f&#92.h&main(){char *s;float n
字符串的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言字符串长度问题_百度知道
C语言字符串长度问题
n&#92.char str[ ]=&quot,数组所占用的字节数是多少;ddd1.char a=&quot:2;0应该看作结束符还是看作\&ab&#92,如下?还有一个问题;strlen(a)=___问下这组字符串里的\ba\&\;012\\016ef&&quot
&#92,那么第一个&#92,应该是&&quot,1;&quot,那么一共8个字符,所以一共6个字符,然后是&#92,\012&#92,b,&quot,所以输出长度应该为8;016代表一个8进制字符;不对;,接着是反斜杠字符,因为字符数组在数组末尾会加上一个NULL空字符,a是个字符;&quot,那么为什么会有6的结果呢,对于sizeof的值为1;n\n\&quot,2三个字符,这里开头两个是两个字符a,答案应该是6,sizeof的值为5;&quot,这里一共5个字符;&#92,和0,希望能解决您的问题,最后是\b是个转义字符;&ab&#92,你可以看见字符char是最小单位.对于第二个问题;双引号字符对于您的第一个问题;012&#92,这里先纠正一下您的错误,答案应该是8;ab&#92,还有应该是char*而不是char,e和f代表最后两个字符,我的QQ;n换行字符
其他类似问题
字符串的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言字符串函数 的文章

 

随机推荐