levels of contents

6-7 删除字符串中数字字符
1.设计思路:
1.使用while函数来查找。
2.找到数字不做处理,将非数字字符储存在新的数组中。
2.流程图:
3.实验代码:

void delnum(char *s) 
	{  
    int i=0,j=0;  
   	while(*(s+i)!='\0')
	   	{  
        if (!(*(s+i)>= '0' && *(s+i)<= '9')) 
		{  
            s[j++] = s[i];  
        }  
        i++;  
    }   
    *(s+j) = '\0'; }

4.本题调试过程碰到问题及解决办法:
在开始尝试了for循环进行编辑,但是一直出现错误于是选择了难度较低的while循环,进过姜健同学的指导将本题做出。

6-8 统计子串在母串出现的次数
1.设计思路:
1.理解题意,使用for循环查找;
2.判断数组str相邻的3个字符是否与substr的相邻的三个字符相同
3.如果相同 则+1 最后输出相同的个数
2.流程图:
3.实验代码:

int fun(char *str,char *substr)
{
  int i;
  int n=0;
  for(i=0;str[i]!='\0';i++)
  {
    if(str[i] == substr[0] && str[i+1] == substr[1] && str[i+2] == substr[2])
  	n++;
  }
    return n;
}

3.本体调试过程碰到问题及解决办法:

在刚开始的时候忽略了相邻问题 在解决之后题目成功解决

6-9 字符串中除首尾字符外的其余字符按降序排列
1.设计思路:
1.使用for循环来冒泡排序
2.除第一个和最后一个进行设计函数
3.比较 交换顺序 然后输出
2.实验代码:

int fun(char *s,int num){
         int i,j,k,temp;
         for(i=1;i<num-2;i++){
             k=i;
             for(j=i+1;j<num-1;j++){
                 if((int)(*(s+k))<(int)(*(s+j))){
                     k=j;
                 }
             }
            if(k!=i){
             temp=*(s+i);*(s+i)=*(s+k);*(s+k)=temp;
             }
        }
         return 0;
     }

3.本题调试过程碰到问题及解决办法:

在一开始无法进行对第一个和最后一个数的忽略 同时使用for循环的时候没办法搞懂冒泡法和选择法的区别和如何使用,在姜健和李伍壹同学的指导下才成功完成本题。

 posted on 2018-04-05 21:43  linkzr  阅读(118)  评论(0编辑  收藏  举报