码迷,mamicode.com
首页 > 其他好文 > 详细

C标准库注意点

时间:2016-04-01 06:23:42      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

isqunct

 

Function: int ispunct( int c);

头文件:cctype

返回值:c是标点,返回非零值;否则,返回0.

 

计算一个字符串中的标点数目:

#include <stdio.h>
#include <ctype.h>
int main ()
{
  int i=0;
  int cx=0;
  char str[]="Hello, welcome!";
  while (str[i])
  {
    if (ispunct(str[i])) cx++;
    i++;
  }
  printf ("Sentence contains %d punctuation characters.\n", cx);
  return 0;
}

 


C++中,将一个string类型对象变成全部小写,一个简单点的方法:

 

 1 #include<algorithm>
 2 #include<string>
 3 
 4 //1、终归都要迭代..
 5 std::string s("something");
 6 std::transform(s.begin(), s.end(), s, ::tolower);
 7 
 8 //2、另一种方法
 9 char easytolower(char in)
10 {
11     if(in>=A&&in<=Z)
12          return in-(Z-z);
13     return in;
14 }
15 
16 //为什么写第二种方法,因为我还不知道为什么 tolower()有时候不听话,我又调试不过来
17 //而且,我想多多使用到泛型算法
18 std::transform(s.begin(), s.end(), s,easytolower);

 

 1 #include <iostream>       // std::cout
 2 #include <string>         // std::string
 3 #include <locale>         // std::locale, std::tolower
 4 
 5 //locale库的使用
 6 
 7 int main ()
 8 {
 9   std::locale loc;
10   std::string str="Test String.\n";
11 
12  for(auto elem : str)
13     std::cout << std::tolower(elem,loc);
14 } 

 

1 #include <boost/algorithm/string.hpp>    
2 
3 std::string str = "HELLO, WORLD!";
4 boost::algorithm::to_lower(str);

 

有时候还会有编码问题,是ASCII还是UTFT。。

以下:

http://stackoverflow.com/questions/313970/how-to-convert-stdstring-to-lower-case

 

C标准库注意点

标签:

原文地址:http://www.cnblogs.com/ymwhat/p/5343510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!