strstr & substr在截取字符串前面位置的中的用法,分离url里的get参数的键值~

jackxiang 2008-3-14 13:26 | |
#include <fstream>
#include <iostream>
#include "/usr/local/mysql/include/mysql/mysql.h"
const char mysqlServer[20] = "10.88.15.114";
//const char mysqlServer[20] = "10.88.15.114";
const char user[20]="web";
const char password[20]="sinatest";
const char database[20]="enterprise";
unsigned  int port=3306;
using namespace std;
int main()
{
  
  MYSQL myData;
  
  MYSQL_RES *res;
  MYSQL_FIELD *fd;
  MYSQL_ROW row;
  int i,j,rowCount = 0,colCount = 0;
  string query;
  
  mysql_init( &myData );
  if(!mysql_real_connect( &myData, mysqlServer, user, password, database,port,NULL,0))
  {
    printf("connect mysql error!\n");
        
  }
  cout <<"the mysql is ok!\n";
  query = "select email from enterprisemail_info where enterpriseid=100334 ";
  if( mysql_query(&myData, query.c_str()) != 0 )
  {
  printf("query error!\n");
  cout << query;
  return 0;
  }else{
    
     cout << "mysql query run ok!\n";
    
     }
  res = mysql_store_result( &myData );
  rowCount = (int) mysql_num_rows( res );
  colCount = (int) mysql_num_fields( res );
  
  //cout << colCount<<"\t"<<rowCount<<"\n";
  for(i = 0; i < rowCount; i++)
  {  
    //第一种方法取出@前面的用户名
    row = mysql_fetch_row( res );
    char buffer[1024],buffer2[1024];
    strcpy(buffer,row[0]);    
    char* p = strstr(buffer,"@");
    *p=0;
    cout <<"strstr="<<buffer<<"\t";

    //第二种方法取出@前面的用户名

    strcpy(buffer2,row[0]);
    char* p2 = strstr(buffer2,"@");
    int points= p2-buffer2;
    string buffer3=buffer2;
    cout<<"substr="<<buffer3.substr(0, points)<<endl;


    

  }
  cout <<"\n";

}

分离url里的get参数的键值~


[root@test geturi]# gcc geturi.c
[root@test geturi]# ./a.out
para1=val1
para2=val2
para3=val3

________________________________________________________________
头文件:#include <string.h>
strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:
char * strchr (const char *str, int c);
【参数】str 为要查找的字符串,c 为要查找的字符。
strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。
摘自:http://c.biancheng.net/cpp/html/161.html

strchr与strstr函数,strchr函数的语法格式怎么用?它的作用与strstr函数有什么区别?
在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>
strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。

它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。
这些在C语言书最后面中都有的,你要学会去多看看书,要会自己解决问题。学编程是要有耐心的,学久了就会懂了。
来自:http://zhidao.baidu.com/link?url=sANNu-OqOB2bmhvJuBEOC1n7S8oeuSOoBcx47GsH0UcScIr3uMFXiZsQNtTu1MNkJGnHuTtCjrBrNdDEcLy2eq

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/936/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2015-3-13 11:04
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]