shell脚本 | C/C++ 统计文件单词个数

简介: shell脚本 | C/C++ 统计文件单词个数

1、用shell 脚本获取当前环境的ip地址?

ifconfig | grep "inet addr" | grep "192.168.220"| awk '{print $2}' | tr -d "addr:"

2、简单统计单词的个数

#include <stdio.h>
#define IN    0
#define OUT   1
#define INIT  OUT
int countword(char * filename)
{
  int status = INIT;
  int res = 0;
  if(filename == NULL)  return -1;
  FILE * fp = fopen(filename,"r");
  if(fp == NULL)  return -1;
  char ch;
  while((ch  = fgetc(fp)) != EOF)
  {
    if('\n' == ch || '\t' == ch || ' ' == ch || ',' == ch || '.' == ch || '!' == ch || '\'' == ch || '\"' == ch || '\r' == ch)
    {
      status = OUT;
    }
    else if(status == OUT)
    {
      status = IN;
      res++;
    }
  }
  return res;
}
int main(int argc,char *argv[])
{
  if(argc < 2)  return -1;
  printf("the word is %d\n",countword(argv[1]));
  return 0;
}

拓展

1、统计一个文件中的单词数量,每个单词的数量分别是多少?

#include <iostream>
#include <map>
#include <fstream>
#include <map>
using namespace std;
#define INFO(msg) {cout<<msg<<endl;}
int main(int argc,char *argv[])
{
  if(argc < 2)
    INFO("you need 2 arguments");
  fstream ff(argv[1],ios::in);
  if(!ff.is_open()) INFO("open fail");
  string data;
  map<string,int> m;
  while(ff>>data)
  {
    if(m.find(data) == m.end()) 
      m.insert(make_pair(data,1));
    else
      m.find(data)->second++;
  }
  for(map<string,int>::iterator it = m.begin();it != m.end();it++)
    if(it->first.size() < 8)
      cout<<it->first<<"\t: \t"<<it->second<<endl;
    else
      cout<<it->first<<": \t"<<it->second<<endl;
  return 0;
}

2、linux中如何解决scanf数组溢出的问题?

 

 

相关文章
|
1月前
|
Shell
Shell 文件包含
10月更文挑战第5天
33 4
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
1月前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
20 0
Linux c/c++文件的基本操作
|
2月前
|
C++ 内存技术
[转]Visual C++内嵌swf文件并播放
[转]Visual C++内嵌swf文件并播放
|
1月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
48 0
|
1月前
|
Linux C++
Linux c/c++文件移动
这篇文章介绍了在Linux环境下,使用C/C++语言通过命令方式和文件操作方式实现文件移动的方法。
70 0
|
2月前
|
Linux API C++
超级好用的C++实用库之文件目录操作
超级好用的C++实用库之文件目录操作
32 0
|
2月前
|
JavaScript 前端开发 测试技术
一个google Test文件C++语言案例
这篇文章我们来介绍一下真正的C++语言如何用GTest来实现单元测试。
20 0
|
3月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
3月前
|
监控 编译器 C++
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
89 0