有关C语言编程

统计代码“行数”

对于统计代码“行数”,行数不包括空白行和注释行。程序改进如下:

 while(fgets (mystring , 100 , fp)!=NULL)//按字符串读入mystring,最多读入长度100
                  {
                   if (fp == NULL) printf("Error opening file");
                   else 
                   {
   		              if(mystring[0]=='/' && mystring[1]=='*')//判断开头有没有/*
   		              {
   			            while(mystring[strlen(mystring)-1]!='*' && mystring[strlen(mystring)-2]!='/')//开头有/*就进入循环不断读取,
   			            //直到读到*/,这样这一段都不会被记入
   			            {
   				           fgets(mystring,100,fp);
                        }
   			            fgets(mystring,100,fp);
                      }
                    hangshu+=judge(mystring);
                    }
                   }

这是判断//和空行的函数

int judge(char mystring[]){
	if(strcmp(mystring,"\n") && (mystring[0]!='/' && mystring[1]!='/'))//如果读入的这行第一第二个字符不是‘\\’,不是空行就记入
    {
		return 1;
	}
	return 0;
}

image

这个c++文件一共345行,亲自数了数空白行和注释行,减掉之后的确是269行。

char ((x[4])())[4]这个声明中的x是什么

参考了 ZTE笔试中的char ((x[3])())[5]解释
分析如下:

  • x[4]:x是四个元素的数组
  • (x[4])():x是4个元素的数组,元素是函数的返回值
  • char ((x[4])())[4]:x是四个元素的数组,元素是函数的返回值,又是char数组的数组名。

数组复制,查找,排序C有相关库函数

  1. C语言里只有字符数组存在库函数strcpy可以进行字符串复制,其它数组没有。
#include <stdio.h>
#include <string.h>
int main()
{
    //字符数组复制
    char string[100];
    strcpy(string,"I am a student.");
    puts(string);
    return 0;
}

image

2.查找、排序的C语言相关库函数,参考数据结构与算法-----搜索和排序(C语言库函数的使用)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmpInt(const void *a,const void *b)
{
    return *(const int*)a - *(const int*)b;
}
int main()
{
    int i,j,num,size,searchNum;
    int *ip;
    /*对数字进行排序和搜索*/
    int Int[100];
    for(i=0;i<100;i++)
    {
        scanf("%d",&Int[i]);
        if(Int[i]==-1)
            break;
    }
    num=i;//数组中元素数量
    size=sizeof(Int[0]);//每一元素大小
    qsort(Int,num,size,cmpInt);//快排法排列数组
    for(i=0;i<num;i++)
        printf("[%d] ",Int[i]);
    printf("\n");
    printf("Pls input the search num:");
    scanf("%d",&searchNum);
    ip=bsearch(&searchNum,Int,num,size,cmpInt);/*此处为重点,传入的是欲查找关键数据的地址;找到关键数据返回地址*/
    (ip==NULL)?puts("Not Found"):puts("Found");
    return 0;
}

image

posted on 2017-02-28 17:08  20155225江智宇  阅读(398)  评论(1编辑  收藏  举报