扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
自动提取出来意思是啥意思?你的意思如果是把这些东西挪列出来的话,那你就把这些变量和函数放在一个头文件里面,外部引用时申明为extern类型就行了
成都创新互联公司专注于企业全网营销推广、网站重做改版、集宁网站定制设计、自适应品牌网站建设、html5、商城网站制作、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为集宁等各大城市提供网站开发制作服务。
为了提高代码的可读性,推荐都是多以函数实现功能。函数本身需要传入返回数据,那么aes加密函数就会把传入的数据加密,然后通过返回值返回到变量里面。我们假设aes函数名字叫aes,那么我们就这样调用:需要加密的数据是a。加密结果是result
int a = 000;
String result = aes(a);
result便是加密后的a
实际代码会很复杂但是结构是这样的。
首先应该声明这个函数,并且写好这个函数的内容,然后在需要的地方传递对应的参数,调用这个函数,获取函数值。
但是在你的这个程序中,要加的数只有一个题目,根本没有“调取多次”的情况。错误的地方已经改正了:
#include string.h
#include stdlib.h
#include stdio.h
#include fcntl.h
#include io.h
/**
* 功能:移除C/C++程序代码中的注释
*
* 输入:指向C/C++程序代码的指针
*/
void
remove_comment(char *buf, size_t size)
{
char *p, *end, c;
char *sq_start, *dq_start;
char *lc_start, *bc_start;
size_t len;
p = buf;
end = p + size;
sq_start = NULL;
dq_start = NULL;
lc_start = NULL;
bc_start = NULL;
while (p end) {
c = *p;
switch (c) {
case '\'': /* 单引号 */
if (dq_start || lc_start || bc_start) {
/* 忽略字符串与注释中的单引号 */
p++;
continue;
}
if (sq_start == NULL) {
sq_start = p++;
} else {
len = p++ - sq_start;
if (len == 2 *(sq_start + 1) == '\\') {
/* 忽略字符中的单引号 */
continue;
}
sq_start = NULL;
}
break;
case '\"': /* 双引号 */
if (sq_start || lc_start || bc_start) {
/* 忽略字符或注释中的双引号 */
p++;
continue;
}
if (dq_start == NULL) {
dq_start = p++;
} else {
if (*(p++ - 1) == '\\') {
/* 忽略字符串中的双引号 */
continue;
}
dq_start = NULL;
}
break;
case '/': /* 斜杆 */
if (sq_start || dq_start || lc_start || bc_start) {
/* 忽略字符、字符串或注释中的斜杆 */
p++;
continue;
}
c = *(p + 1);
if (c == '/') {
lc_start = p;
p += 2;
} else if (c == '*') {
bc_start = p;
p += 2;
} else {
/* 忽略除号 */
p++;
}
break;
case '*': /* 星号 */
if (sq_start || dq_start || lc_start || bc_start == NULL) {
/* 忽略字符、字符串或行注释中的星号,还有忽略乘号 */
p++;
continue;
}
if (*(p + 1) != '/') {
/* 忽略块注释中的星号 */
p++;
continue;
}
p += 2;
memset(bc_start, ' ', p - bc_start);
bc_start = NULL;
break;
case '\n': /* 换行符 */
if (lc_start == NULL) {
p++;
continue;
}
c = *(p - 1);
memset(lc_start, ' ',
(c == '\r' ? (p++ - 1) : p++) - lc_start);
lc_start = NULL;
break;
default:
p++;
break;
}
}
if (lc_start) {
memset(lc_start, ' ', p - lc_start);
}
}
int
main(int argc, char *argv[])
{
int fd, n;
char buf[102400];
fd = open("C:\\Documents and Settings\\Administrator\\桌面\\remove_comment.c",
_O_RDONLY, 0);
if (fd == -1) {
return -1;
}
n = read(fd, buf, sizeof(buf));
if (n == -1 || n == 0) {
close(fd);
return -1;
}
//printf("test\n");
remove_comment(buf, n);
*(buf + n) = '\0';
printf(buf);
/***********\\\/////// */
close(fd);
return 0;
}
使用文件操作函数即可。
1、fgets函数:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:从文件结构体指针stream中读取数据,每次读取一行;
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:
#includestdio.h
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
return 0;
}
fscanf(fp1,"%d",a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
工具\材料
电脑
方法如下
1、首先建一个PHP文档,定义一个包含数字的字符串。
2、接着使用定义正则表达式的匹配模式。
3、然后使用正则匹配函数“ preg_match_all()”。
4、根据判断的结果,在下图中加入打印。
5、最后保存内容就可以提取到数字。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Copyright © 2002-2023 www.kswjz.com 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号
微信二维码
移动版官网