数组的分装(关于循环的两个控制条件)

简介: 数组的分装(关于循环的两个控制条件)

题目:输入一个数组arr1,把其中字母的部分分装到arr2中,把剩余部分分装到arr3中


核心:两个控制条件(与双指针有类似的地方—具体可以看我主页“删除指定数字”的详解)


         条件一:arr[i]!=’\0‘  条件二:新下标j和z遍历新的数组以后,j++/z++


易错点:1.“下图关键一步”最后没有加上’\0‘组成字符串。


             2.不完全初始化数组的时候没有考虑到后续加入的’\0‘,导致栈溢出。

栈溢出的标识


image.png

image.png

#include<stdio.h>
//将arr1[]数组中,有字母的部分分装进arr2[]中
int main()
{
  char arr1[5], arr2[5],arr3[5];//为防止栈溢出,应将5改成6,这里保留
  //对arr1输入
  scanf("%[^\n]", arr1);
  //scanf("%s",arr1);//空格不接收
  //gets(arr1);//空格接收
  int i = 0;
  int j = 0;
  int z = 0;
  for (i = 0; arr1[i] != '\0'; i ++)
  {
    if ((arr1[i] >='a' && arr1[i] <= 'z') || (arr1[i] >= 'A' && arr1[i] <= 'Z'))
    {
      arr2[j] = arr1[i];
      j++;
    }
    else
    {
      arr3[z] = arr1[i];
      z++;
    }
  }
  //关键一步:使其成为字符串,以便于后续打印
  arr2[j] = '\0'; arr3[z] = '\0';
  /*int m = 0;
  for (m = 0; m < 5; m++)
  {
    printf("%s %s", arr1[i], arr2[i]);
  }*/
  puts(arr2);
  puts(arr3);
  return 0;
}


相关文章
|
4月前
|
Java 数据库
为什么要检查循环中的等待条件
【8月更文挑战第22天】
103 5
|
5月前
|
语音技术 数据安全/隐私保护
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
|
7月前
|
搜索推荐 Python
为什么我们需要循环控制
在计算机编程中,循环控制是一种非常基础和重要的编程结构。通过循环控制,我们可以实现重复执行某段代码,直到满足特定的条件为止。循环控制不仅简化了编程过程,还提高了代码的效率,使得复杂的计算或任务能够得以高效完成。
80 1
|
前端开发
判断数组对象中是否满足某条件
判断数组对象中是否满足某条件
40 0
哇,三目(条件)的顺序真有趣
@(太开心) 今天看到这样的代码
38 1
|
存储 算法 C++
计算1到n的和(不用循环且逐步限制条件)
注:满足题目要求的解法有递归实现的第三种、公式实现、C++调用构造函数累加法三种方法、
84 0
|
算法 C++
C++——循环控制强化训练
C++——循环控制强化训练
|
JavaScript 前端开发
不同类型的循环
不同类型的循环
83 0
循环控制
break控制语句、continue控制语句
72 0
循环控制
|
Java Shell Linux
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环