for循环程序怎么理解,麻烦大虾讲解一下
发布网友
发布时间:2022-12-23 15:44
我来回答
共2个回答
热心网友
时间:2024-12-04 18:54
这是一个将输入字符串反转的程序,就是第一个字符和最后一个字符对调,第二个和倒数第二个对调,依此类推......
程序首先让你输入字符串str,然后计算字符串长度len
for循环也比较容易理解,总共循环len/2次,每次对调一组字符
str[i]与str[len - 1 - i]对调,
例如len = 10,则str[0]与str[9]对调,str[1]与str[8]对调......
这个程序有一点问题,str字符串数组长度只有19,一旦输入长度超过19,就会溢出,算是一个bug
热心网友
时间:2024-12-04 18:55
void main()
{
char str[19],tmp;
int i,len;
printf("请输入字母:\n");
scanf("%s",str); //输入字符串,回车结束
len=strlen(str); 字符串的长度赋值给len,最后一个字符的数组下标是len-1,
for(i=0;i<len/2;i++) 循环len/2次,每次做的都是交换两个字符,即第一个跟最后一个,第2个 { 跟倒数第2个交换,以此类推。相当于逆序。例如输入的是
tmp=str[i]; asdfgh 输出就是hgfdsa
str[i]=str[len-1-i];
str[len-1-i]=tmp;
}
printf("%d\n",len);
printf("%s",str);
}