while(str[i]!='\0')是什么意思

作者&投稿:拔谦 (若有异议请与网页底部的电邮联系)
while(str[i]!='\0') { s[i]=str[i]; i++; } s[i]='\0'; }是什么意思?~

while(str[i]!='\0')//这里是把str字符串拷贝给s
{
s[i]=str[i];
i++;
}
s[i]='\0'; //末尾要加上字符'\0'表示结束,不然字符串没有结束符不对的

如果str是一个字符串数组的话,while(str[i]!='\0')和while(str[i])都能表示为,循环到字符串结束位置停止循环。

判断str[i]的值是否等于'\0'字符,如果不等于就执行while后面语句,否则跳出循环;

  在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不能再用字符数组的长度来判断字符串的长度了。

//参考代码如下:
//计算字符串长度 
#include<stdio.h>
int main()
{
int i=0;
char a[200];
gets(a);
while(a[i]!='\0'){//判断字符串是否结束,不结束自加1 
i++;
}
printf("%d
",i);//输出长度 
return 0;
}
//输入:asdfdasf 
//输出:8


\0就是组的结束字符标志,就是当数组的第i个的值不知结束字符的话就执行while循环语句

如果str[i]这个数据不等于字符串\0


如何输出字符串第一个非空白字符?
void main(){ int i;char s[10];printf("输入字符串\\n");for(i=0;i<10;i++)scanf("%s",s[i]);for(i=0;i<10;i++){ if(s[i]!='\\0')printf("第一个非空白字符:%s",s[i]);} } 呵呵,不知道对不对,你运行看看吧 ...

ASP排序问题
strSql="SELECT * FROM 数据表 ORDER BY A"rs.open strSql,conn,1,1 wyhile not rs.eof '1 将取出的数据存放到一个有4个元素的数组中:d(1)=rs("b")d(2)=rs("c")d(3)=rs("d")d(4)=rs("e")'2 对数组d进行排序(略)'3 输出:response.write rs("a") & vbcrlf & CStr(...

php上传图片并压缩-thinkphp如何做图片压缩呢?
在上传图片的时候先看看图片有多大,一般来说导航幻灯片的图片单张大小尽量不超100k,产品图不超过20k,这样加载还慢的话就用ajax后加载方法,可以是滚动加载之类,但是对蜘蛛抓取页面并不是很友好。至于你说的用tp把图片压缩,那只能是将图片的尺寸改成你想要的尺寸,大小的话是web所用格式大小,等页面加载完...

郯城县19463684356: C语言:while(str[i]!='\0')和while(str[i])的区别是什么? -
禤净麦迪: 如果str是一个字符串数组的话,while(str[i]!='\0')和while(str[i])都能表示为,循环到字符串结束位置停止循环.

郯城县19463684356: C语言中while(str[i])语句是什么意思? -
禤净麦迪: 这就是扫描并打印整个字符串的意思:i=0; while(str[i]) printf("%c",str[i++]);

郯城县19463684356: while(str[i]!='\0')是什么意思 -
禤净麦迪: 判断str[i]的值是否等于'\0'字符,如果不等于就执行while后面语句,否则跳出循环; 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串.字符串总是以'\0'作为串的结束符.因此当把一个字符串存入一个数组时,也把结束...

郯城县19463684356: while( str[i++] ) 是什么意思? -
禤净麦迪: 一次扫描str的每个字符(从第i个开始),一直到该字符的ASCII码为0结束. 在字符串中,结束符为'\0',其ASCII码为0.这句的结果就是从第i个字符扫描str字符串直到结束另:while,if等语句后面跟的条件判断的方式均为“条件是否为0”.如if(2<3),实际上2<3返回一个非0值,所以该语句进入if分支.而字符本身有值,即ASCII码,所以判断语句可以直接这样写,这样写和while( str[i++] == '\0' )的效果是一样的

郯城县19463684356: while(str[i]!='\0') //只要没有显示到结束标志'\0' -
禤净麦迪: while(str[i]!='\0') //只要没有显示到结束标志'\0' 就是说,只要整个字符型数组不遍历完全,就一直执行while循环 因为一个字符型数组的结束标志是 '\0' ,只要遍历到 '\0' 就表示字符型数组遍历结束咯,就跳出循环

郯城县19463684356: C语言中 while ((str[i]=getchar())!='\n')没用 -
禤净麦迪: 1、要先输入字符串,再输入字符.2、i对应各个字符,str[i]='\0'就把最后一个字符去掉了,如果恰恰是要找的字符怎么办?3、index=i了,那么,idex还怎么等于i+1?逻辑错误太多,程序混乱,不是换某个字符就能解决问题的,是巧合倒有可能.

郯城县19463684356: while(str[i++]){……}与while(str[i]){……i++;}有什么不一样吗.其中str定义为char *str
禤净麦迪: 一般来说,没有什么不一样,这里的关键是 while(str[i]){……i++;} 这个......的过程中,是否使用到了i. 例如: while(str[i++]) { int a = i; printf("%d",a); //这里输出的是 i+1 } 而 while(str[i]) { int a = i; printf("%d",a); //这里输出的是 i i++; } 这样是不同的,其他情况两者大体是一样的.

郯城县19463684356: 编写一个程序,实现将"this is a secret message !通过每个字符后移3个字 -
禤净麦迪: #include int main() { char * str="this is a secret message !",str2[265]; int i=0; while(str[i]!=0){ //移动空格的话,把下面3行的删了, if(str[i]==' ') str2[i]=str[i]; else str2[i]=str[i]+3; i++; } str2[i]=0; printf(str); printf("\n"); printf(str2); return 0; 空格移不移?

郯城县19463684356: 用c语言编写输入一字符串,统计字符串中各个字母出现的次数(区分大小写) -
禤净麦迪: 1 2 3 4 5 6 7 8 9 10 11 12 13 14#include <stdio.h> intmain() {inta[128]={0};charch;do{scanf("%c",&ch);a[ch]++;}while(ch!='\n');for(ch='A';ch<='Z';ch++)if(a[ch])cout<<ch<<":"<<a[ch]<<endl;for(ch='a';ch<='z';ch++)if(a[ch])cout<<ch<<":"<<a[ch]<<endl;return0; }

郯城县19463684356: while(str[i] != '\0') -
禤净麦迪: 编程的???如果i和j不变的话这个是一个死循环,一直做把str2[j]的值赋给str1[i],如果str2[j]为字符串结尾(即\0),跳出. 这个赋值语句返回的是str2[j]的值,一般这个句子在字符串赋值时候可以用一下,很巧妙. while (str1[i++]=str2[j++]); 这样把str2从j到字符串尾的部分赋值给了str1字符串,位置是从i开始的.

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