**
一、规范要求
** 1.禁止使用TAB键,将TAB键换成四个空格。 2.禁止使用非英文注释。 3.程序开头、主函数、子函数必须添加注释进行说明
4.主函数与子函数的 输入参数 和 return value(返回值)需要使用debug类型的log函数进行打印输出。 5.如果子函数的入参是指针类型的参数,必须要对对其进行判空处理,然后打印。
6.如果使用if、else if,那么必须要加上 else;同时,除了while、for等循环外,需打印if的判断条件。
7.对于枚举变量的定义,必须对每一个枚举常量进行初始化赋值。 8.变量必须初始化。 9.进行算数运算、逻辑运算等,需要在其符号左右两边添加空格,且if 和 括号之间也需要添加空格如
int i = 10;
int i=10;
if (i < 10)
if(i<10)
while ((i < 10) && (i >= 0))
while(i<10 && i>=0)
10.switch中 每一类case语句后必须要加break,且必须以default: break语句作为结尾。
11.禁止使用strcpy()函数,使用memcpy()、strncpy()进行替代。 12.禁止使用string.data(),使用string.str()进行替代。 13.malloc-memcpy-free、new-delete、fopen/flose配对使用
**
二、演示前说明
** 1.这里将LOGT、LOGD 、LOGE分别作为Trace、Debug、Error等级的打印函数,实际情况下,请根据内部组织要求进行攥写。(如果要运行程序,请将这三个所在的代码区域进行注释,这里不急于其的库函数程序) 2.使用工具:Linux、ubuntu20、gcc7.4.0、secureCRT4.0、notepad++ **
三、C和指针课后题实例
**
#include <stido.h>
#include <string.h>
float mySqrt(float n)
{
LOGT << "in";
LOGD << "n = " << n;
float preCaculteSqt = 1;
float curCaculteSqt = 0;
while (1)
{
curCaculteSqt = (preCaculteSqt + (n / preCaculteSqt))/2;
if(curCaculteSqt = preCaculteSqt)
{
break;
}
preCaculteSqt = curCaculteSqt;
}
LOGD << "curCaculteSqt = " << curCaculteSqt;
LOGT << "out";
return curCaculteSqt;
}
int main(int argc, char *argv[])
{
LOGT << "in";
float inputNum = 0;
float sqrtInputNum = 0;
printf("Ebter a positive number :");
scanf("%f", &inputNum);
if(inputNum > 0)
{
sqrtInputNum = mySqrt(inputNum);
printf("inputNum = %f, sqrtInputNum = %f\n", inputNum, sqrtInputNum);
}
else
{
printf("error");
}
LOGT << "out";
return 0;
}
#include <stido.h>
#include <string.h>
void copyN(char dst[], char src[], int n)
{
LOGT << "in";
LOGD << "dst" << dst;
LOGD << "src" << src;
LOGD << "n" << n;
unsigned int srcLen = strlen(src);
unsigned int dstLen = strlen(dst);
int i = 0;
if (src >= n)
{
strncpy(dst, src, n);
}
else
{
strncpy(dst, src, n);
for(i = srcLen; i < n; i++)
{
dst[i] = '\0';
}
}
LOGT << "out";
return;
}
int main(int argc, char *argv[])
{
LOGT << "in";
int num = 0;
char dst[10] = "SUPERMAN";
char src[8] = "super";
copyN(dst, src, num);
printf("After dst : %s, length = %ld\n", dst, strlen(dst));
LOGT << "out";
return 0;
}
#include <stido.h>
#include <stdlib.h>
#include <string.h>
#define N 128
int main(int argc, char *argv[])
{
LOGT << "in";
int flag = 0;
char str1[10] = "";
char str2[8] = "";
FILE *fp = NULL;
fp = fopen("input.txt", "r");
if (fp == NULL)
{
LOGE << "open file error";
LOGT << "out";
return -1;
}
if (fgets(str2, N, fp) != NULL)
{
while (fgets(str1, N, fp) != NULL)
{
if (strcmp(str1, str2) != 0)
{
flag = 0;
strncmp(str2, str1, (strlen(str1) + 1));
}
else if (flag != 0)
{
flag = 1;
puts(str1);
}
else
{
}
}
}
if (fp != NULL)
{
fclose(fp);
fp = NULL;
}
LOGT << "out";
return 0;
}
#include <stido.h>
#include <stdlib.h>
#include <string.h>
int subStr(char dst[], char src[], int start, inr len)
{
LOGT << "in";
LOGD << "dst" << dst;
LOGD << "src" << src;
LOGD << "start" << start;
LOGD << "len" << len;
int d = 0;
int s = 0;
if ((start >= 0) && (len >0))
{
for(s = 0; (s < start) && (src[s] != '\0'); s++)
{
}
while ((len >0) && (src[s] != '\0'))
{
dst[d++] = src[s++];
len--;
}
dst[d] = '\0'
}
LOGT << "out";
return;
}
int main(int argc, char *argv[])
{
LOGT << "in";
char src[10] = "01234567";
char dst[10] = "";
printf("src is : %s, \n", src);
subStr(dst, src, 2, 3);
puts(dst);
LOGT << "out";
return 0;
}
#include <stido.h>
#include <stdlib.h>
char *blankCount(char *str)
{
LOGT << "in";
if (str == NULL)
{
LOGE << "str is NULL";
LOGD << "return null string";
LOGT << "out";
return "";
}
if(*str == '\0')
{
LOGD << "str is :" << str;
LOGT << "out";
return "";
}
if(*str == ' ')
{
str++;
str = blankCount(str);
}
LOGD << "str is :" << str;
LOGT << "out";
return "";
}
void deBlank(char string[])
{
LOGT << "in";
char *strTemp = string;
char str1[30]="\0";
int i = 0;
while (*strTemp != '\0')
{
if (*strTemp != ' ')
{
str1[i++] = *strTemp;
strTemp++;
}
else
{
str1[i++] = *strTemp;
strTemp++;
strTemp = blankCount(strTemp);
}
}
printf("After str1 is: %s\n", str1);
LOGT << "out";
return "";
}
int main(int argc, char *argv[])
{
LOGT << "in";
char str1[30] = "aer bui d ff ";
printf("Befor str1 is : %s\n", str1);
deBlank(str1);
LOGT << "out";
return "";
|