有关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,"
") && (mystring[0]!='/' && mystring[1]!='/'))//如果读入的这行第一第二个字符不是‘\’,不是空行就记入
{
return 1;
}
return 0;
}
这个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有相关库函数
- C语言里只有字符数组存在库函数strcpy可以进行字符串复制,其它数组没有。
#include <stdio.h>
#include <string.h>
int main()
{
//字符数组复制
char string[100];
strcpy(string,"I am a student.");
puts(string);
return 0;
}
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("
");
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;
}