字符

阅读 / 问答 / 标签

VC中怎么过滤中文字符

Trim只能去掉字符串最左边最右边的空格,也不是用TRIM还是TrimLeft(),TrimRight();你要去"一、", 用Replace替换为空不行了么?

用C++Builder编写去掉字符串左右两边空格的问题。不要使用已有的函数。大家帮忙看看吧

AnsiString trim(const AnsiString &mystr) { AnsiString str = mystr; int len ,count= mystr.length(); int st = 0; while ((st < len) && (str [ st] <= " ")) { st++; } while ((st < len) && (str [ len - 1] <= " ")) { len--; } return ((st > 0) || (len < count)) ? str.substr(st, len) : str; }str.substr(st, len) 这个意思您能理解吧,不让用自己复制一下这段字符串就完了。

请问用strlen来计算字符串的长度时 空格算不算上去的咯

用strlen来计算字符串的长度时 空格算.1. 测字符串长度函数strlen 格式: strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志‘") 并作为函数返回值。【例】#include"string.h"main(){ int k; static char st[]="C language"; k=strlen(st); printf("The lenth of the string is %d ",k);}

delphi中如何去除右边字符

varstr:string;beginstr := "abcdefghigklmn";Delete(str,Length(str)-4,5);ShowMessage(str);end;

C++如何从字符串中读取字符

用CString对象。好多方法。好用。常用方法。GetLength Returns the number of characters in a CString object. For multibyte characters, counts each 8-bit character; that is, a lead and trail byte in one multibyte character are counted as two characters. IsEmpty Tests whether a CString object contains no characters. Empty Forces a string to have 0 length. GetAt Returns the character at a given position. operator [] Returns the character at a given position — operator substitution for GetAt. SetAt Sets a character at a given position. operator LPCTSTR Directly accesses characters stored in a CString object as a C-style string. Assignment/Concatenation operator = Assigns a new value to a CString object. operator + Concatenates two strings and returns a new string. operator += Concatenates a new string to the end of an existing string. Comparison operator == <, etc. Comparison operators (case sensitive). Compare Compares two strings (case sensitive). CompareNoCase Compares two strings (case insensitive). Collate Compares two strings (case sensitive, uses locale-specific information). CollateNoCase Compares two strings (case insensitive, uses locale-specific information). Extraction Mid Extracts the middle part of a string (like the Basic MID$ function). Left Extracts the left part of a string (like the Basic LEFT$ function). Right Extracts the right part of a string (like the Basic RIGHT$ function). SpanIncluding Extracts a substring that contains only the characters in a set. SpanExcluding Extracts a substring that contains only the characters not in a set. Other Conversions MakeUpper Converts all the characters in this string to uppercase characters. MakeLower Converts all the characters in this string to lowercase characters. MakeReverse Reverses the characters in this string. Replace Replaces indicated characters with other characters. Remove Removes indicated characters from a string. Insert Inserts a single character or a substring at the given index within the string. Delete Deletes a character or characters from a string. Format Format the string as sprintf does. FormatV Formats the string as vsprintf does. TrimLeft Trim leading whitespace characters from the string. TrimRight Trim trailing whitespace characters from the string. FormatMessage Formats a message string. Searching Find Finds a character or substring inside a larger string. ReverseFind Finds a character inside a larger string; starts from the end. FindOneOf Finds the first matching character from a set. Archive/Dump operator << Inserts a CString object to an archive or dump context. operator >> Extracts a CString object from an archive. Buffer Access GetBuffer Returns a pointer to the characters in the CString. GetBufferSetLength Returns a pointer to the characters in the CString, truncating to the specified length. ReleaseBuffer

ES6-字符串方法及其实现

模板字符串替换 + 操作符,来拼接字符串,并且支持换行: 标签模板 : 标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。 如果模板字符里面有变量,就不是简单的调用了,而是会将模板字符串先处理成多个参数,再调用函数。 String.raw() 是一个 模板字符串 的标签函数,它的作用类似于 Python 中的字符串前缀 r ,通常使用标签模板的形式( String.raw模板字符串 ),返回值是 自动转义 的字符串: u200b Polyfill: repeat 方法返回一个新字符串,表示将原字符串重复 n 次。语法: 如果某个字符串不够指定长度,会在头部或尾部补全。 padStart() 用于头部补全, padEnd() 用于尾部补全。 trimLeft() 是 trimStart() 的别名, trimRight() 是 trimEnd() 的别名。 除了空格键,对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。 substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。返回新的字符串,不改变原来的字符串 str.substring(indexStart[, indexEnd]) : indexStart需要截取的第一个字符的索引,该字符作为返回的字符串的首字母。indexEnd]可选 ,一个 0 到字符串长度 之间的整数,以该数字为索引的字符 不包含 在截取的字符串内。 左闭右开 slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。 str.slice(beginIndex[, endIndex]) 参数和substring一样,只不过有差异。和上面方式对比: 可见 slice 方式的索引是可以倒数的, 强烈推荐 使用 slice 方式截取字符串更好理解,不易出错。 其实JS中截取字符串,方法有很多: substr(淘汰,不推荐) 、 substring 、 slice ,推荐使用 slice 方式。

MFC中几种常用的字符串分割方法

1、CString 自带的函数TokenizeCStringT Tokenize( _In_ PCXSTR pszTokens, _Inout_ int& iStart ) const功能介绍:从iStart位置取出字符串中含pszTokens分割符间的内容;istart是开始分割的位置,一般设为0,下面是一段运用实例:vector<CString> SplitCString(CString strSource, CString ch){ vector <CString> vecString; intiPos = 0; CString strTmp; strTmp = strSource.Tokenize(ch,iPos); while(strTmp.Trim() != _T("")) { vecString.push_back(strTmp); strTmp = strSource.Tokenize(ch,iPos); }}上述函数将字符串strSource按照字符串ch进行分割,分割得带的子字符串放到vector中。其中函数中的iPos是不断变化的,而Tokenize本身不会改变源字符串。2、char *strtok(char s[], const char *delim);功能介绍:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。从s开头开始的一个个被分割的串。当查找不到delim中的字符时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。下面是一段运用实例。vector<CString> SplitCString(CString strSource, charch){ vector<CString> vecString; CString strTmp=strtok((LPSTR)(LPCTSTR)strSource,ch);//(LPSTR)(LPCTSTR)将CString转char* while(1) { strTmp=strtok(NULL,ch); if(strTmp==_T("")) break; strTmp.TrimLeft(); vecString.push_back(strTmp); }}与第一种方法有一点区别,上述函数第二个参数是char型的,第一种方法的第二个可以是CString型的,但是实现的功能相似。3、BOOL AFXAPI AfxExtractSubString ( CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = ‘ ");功能介绍:可用于从特定源字符串中提取子字符串。如果函数成功提取了该子字符串中提供的索引,返回TRUE 否则返回FALSE。其中// rString 对CString将得到一个单独的子字符串的对象。// lpszFullString 待分割的字符串。// iSubString 提取的子字符串的序号,从0开始。假如你想提取第3段,该参数就输入2// chSep 用于分割的字符,默认的是" "。下面是一段运用实例vector<CString> SplitCString(CString strSource, charch){ CString strTmp; vector<CString> vecString; intiPos=0; while(AfxExtractSubString(strTmp,strSource,iPos,ch)) { iPos++; vecString.push_back(strTmp); } returnvecString;}特别注意:strtok在分割的时候将分割符改变成‘/0"了,所以这个函数会修改源字符串,分割符不会包含在分割出来的字符串中,strtok允许多分割字符,比如空格+逗号表示为‘ ,",还有一点需要注意的是如果被分割的字符第一个是分割符,那么该字符会被忽略掉。如果出现连续的分隔符,那么也会忽略掉,比如字符串1|2||||3,用strtok来分割将得到1 2 3,但是如果用AfxExtractSubString,得到将会是1 2 空字符串 空字符串 空字符串 3,需求不同选择不同的函数。4、利用CString Find函数自己分割字符串vector<CString> SplitCString(CString strSource, charch){ CString strTmp; vector<CString> vecString; intn=-1; n=strSource.Find(ch) while(n!=-1) { strTmp=strSource.Left(n)//这里根据需要判断是否需要分隔符 vecString.push_back(strTmp); strSource=strsource.left(strSource.Getlenth-n+1) n=strSource.Find(ch); } returnvecString;}这种方法功能和上述类似,使用也很灵活,可以根据自己需要分割字符串。

js去掉字符串前后空格的五种方法

第一种:循环检查替换 [javascript] //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" "); var str = new String(s); if (whitespace.indexOf(str.charAt(0)) != -1) { var j=0, i = str.length; while (j < i && whitespace.indexOf(str.charAt(j)) != -1){ j++; } str = str.substring(j, i); } return str; } //去掉右边的空白 www.2cto.com function trimRight(s){ if(s == null) return ""; var whitespace = new String(" "); var str = new String(s); if (whitespace.indexOf(str.charAt(str.length-1)) != -1){ var i = str.length - 1; while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){ i--; } str = str.substring(0, i+1); } return str; } 第二种:正则替换 [javascript] <SCRIPT LANGUAGE=" Java Script"> </SCRIPT> 第三种:使用jquery [javascript] $.trim(str) jquery内部实现为: [javascript] function trim(str){ return str.replace(/^(s|u00A0)+/,"").replace(/(s|u00A0)+$/,""); } 第四种:使用motools [javascript] function trim(str){ return str.replace(/^(s|xA0)+|(s|xA0)+$/g, ""); } 第五种:裁剪字符串方式 [javascript] function trim(str){ str = str.replace(/^(s|u00A0)+/,""); for(var i=str.length-1; i>=0; i--){ if(/S/.test(str.charAt(i))){ str = str.substring(0, i+1); break; } } return str; } 经过测试第五种方法在处理长字符串时效率最高。

node.js怎么去除字符串空格

忘了U0001f61cU0001f61c

微机中采用的标准asdii编码用( )位二进制表示一个字符?

微机中采用的标准asdii编码用7位二进制表示一个字符.ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。1)标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。2)ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。参考:http://baike.baidu.com/link?url=utCok5ZPmC3t8q4YkGSjkR0EL3u9gIi9vro9P4pYqVPYhXkV-LhsLqwkx3r4jOuGpw7NwGOfYKxEw6DmNELYFa

c语言编程:字符串元音字母处理

这里假设得到字符串了存放在charstr[60]里面删除后的字符串存放在chardis[60]char*psr=str;char*pdis=dis;for(i=0;i<strlen(str);i++){switch(*psr){case"a":case"e":case"i":case"o":case"u":psr++;break;default:*pdis++=*psr++;break;}}

编写C程序删去字符串中元音字母

这里假设得到字符串了存放在char str[60]里面 删除后的字符串存放在char dis[60] char *pSr=str; char *pDis=dis; for(i=0;i<strlen(str);i++) { switch(*pSr) { case "a": case "e": case "i": case "o": case "u": pSr++; break; default: *pDis++ = *pSr++; break; } }

有如下语句序列:   char str[10];cin>>str;   当从键盘输入”I love this game”时,str中的字符串

看你有没有空格了 空格也算是字符的 而且你这只能放十个 字符是:I空格love空格thi

c语言如何在指定的字符串中的位置插入另一字符串,比如输入字符串qwr和字符串asd,插入位置2,结

char a[200];char b[50];char c[200];gets(a);b="asd";int n=2;int k=0;for (int i=0;i<n;i++){ c[k++]=a[i];}for(int i=0;b[i]!="";i++){ c[k++]=b[i];}for(int i=n;a[i]!="",i++){ c[k++]=a[i];}c[k]="";printf("%s",c);----------自己懂大概意思就行了。。代码自己调试..

在C#中怎样将一个字符串ENCODE成UTF8的URL格式

楼主您的问题我越看越糊涂,能否详细地补充下

如何查看字符编码类型

可以通过以下方法来进行编码格式判断,输入一个字符串,之后返回字符串编码类型。public static String getEncoding(String str) {String encode = "GB2312";try {if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GB2312String s = encode;return s; //是的话,返回“GB2312“,以下代码同理}} catch (Exception exception) {}encode = "ISO-8859-1";try {if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是ISO-8859-1String s1 = encode;return s1;}} catch (Exception exception1) {}encode = "UTF-8";try {if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8String s2 = encode;return s2;}} catch (Exception exception2) {}encode = "GBK";try {if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GBKString s3 = encode;return s3;}} catch (Exception exception3) {}return ""; //如果都不是,说明输入的内容不属于常见的编码格式。

c#中如何对字符串进行encode加密

HttpUtility.UrlEncode 或者Server.UrlEncode 都行。

python中文编码变成字符串无法使用encode?

str类确实没有decode方法,这个方法是bytes类的。要从这种字符串解码出中文,需这样做:s="x22xE8x8ExB7xE5x8Fx96xE6xA8xA1xE6x9DxBFxE5x88x97xE8xA1xA8xE6x88x90xE5x8Ax9Fx22"b=bytes(ord(e) for e in s)print(b.decode())这是运行截图:

encode()函数可以检测字符的编码类型对吗

对。根据查询资料显示decode的作用是将二进制数据解码成unicode编码,如str1.decodeutf8表示将utf8的编码字符串解码成unicode编码。

encode()函数可以检测字符的编码类型?

Python 中的 encode() 函数是 str 类的一种方法,用于将字符串编码为指定的编码。它不会检测字符串的编码。若要检测字符串的编码,可以使用 chardet 等库,这是一种通用字符编码检测器。下面是如何使用 chardet 库检测 Python 中字符串编码的示例:这将打印检测到的字符串编码。请注意,chardet 库并不总是准确的,它返回的结果可能并不总是正确的。或者,您也可以使用 ftfy(为您修复文本)库,该库专门用于修复和规范化文本。它包括一个名为 detect_encoding() 的函数,可用于检测字符串的编码。下面是如何使用此函数的示例:

labview中1个字节的字符串如何反转?

既然是数组,我首先想到的是索引数组,将数组的每一项索引,然后用字符串连接符将每一项连接起来,就变成了一个长字符串。使用LabVIEW开发上位机软件,在软件的流程图上显示第三方仿真软件发送过来的数据,并将下位机倍福PLC采集的开关量数据发送给第三方仿真软件,LabVIEW上位机与第三方仿真软件之间采用UDP协议进行通信。使用过LabVIEW进行UDP通信的都知道,LabVIEW的UDP收发模块只能发送和接收字符串,不能发送数组或其他类型的数据,如果要发送,就必须将这些类型的数据转化为字符串。一般我们的数据都是保存在数组中的,我们就来看看labview中字符串数组是如何转化为字符串的。既然是数组,我首先想到的是索引数组,将数组的每一项索引,然后用字符串连接符将每一项连接起来,就变成了一个长字符串。

如何将数据实体转换为 JSON 字符串

C#有个很好用的第三方程序集叫Json.Net,最简单的序列化方法:string json = JsonConvert.SerializeObject(要序列化的对象);

向Sql Server表中字段追加某字符串

为什么不直接update该字段

游标里的字符串相加问题,在线等?

这样不行就把这个"0"赋给一个变量,然后用两个变量相连。试试。那么检查下游标的语法吧。

javascript的eval函数的优点是什么?只知道是将括号内的字符串当JS语句处理。请通俗举例说明其用途和优点

这函数作用可大了去了。比如你可以动态生成javascript代码什么的没什么说服力呃~~等你用的时候就知道了

结构体中的成员如果是字符数组,有几种赋值方式?

// 2013-04-02-001.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>using namespace std;typedef struct test{string strname;int nid;int age;char sex[10];unsigned int sn: 4;} test_a,test_b[2];typedef struct test2{string strname;int nid;int age;char sex[5];unsigned int sn: 4;} test_a2;union best{ int number; char name[10]; double value;}pbest;int _tmain(int argc, _TCHAR* argv[]){ test_a *ptest=new test_a; ptest->strname="中国人"; ptest->nid=300; cout<<"test_a.name= "<<ptest->strname<<" "<<"test_a.nid= "<<ptest->nid<<endl; test test_b[2]={ {"wj",18,30,"man"}, {"jack",28,40,"woman",88}, }; //test2 testa2={"kfc",28,40,"woman",88}; test2 testa2; testa2.strname="kfc"; testa2.age=28; testa2.nid=40; strcpy(testa2.sex,"woman");//值超出数组范围 testa2.sn=2231;cout<<"test_b.name= "<<test_b[0].strname<<endl; cout<<"testa2.name= "<<testa2.strname<<endl; cout<<"testa2.sex= "<<testa2.sex<<endl; cout<<"testa2.sn= "<<testa2.sn<<endl; pbest.number=30;//分别赋值 cout<<"pbest.number= "<<pbest.number<<endl;//分别输出 pbest.value=800; cout<<"pbest.value= "<<pbest.value<<endl; strcpy(pbest.name,"新中国"); cout<<"pbest.name= "<<pbest.name<<endl;//best pbest={50,800,strcpy(pbest.name,"新中国")};system("pause"); return 0;}这样输出的原因:结构体里面的每一个元素都占有一定的内存空间。而共用体占用其元素中最长的变量的那个类型的内存空间。其赋值是覆盖式的

java 如何根据字符串 动态执行方法(无参和有参)

public class Test { public static void main(String[] args) { test(); test("有参数"); } public static void test() { System.out.println("无参数"); } public static void test(String c) { System.out.println(c); }}这叫方法的重载,方法名一样,参数列表不一样。是面象对象重要特征

从数据库读出vachar数据经调试发现后面多了个转义字符"",这是咋回事啊?如数据库存的是"3"读取就是"3"

查询语句来看是没有问题的,问题出在插入数据的时候吧

C#去掉字符串中含有网址。

用正则表达式吧

宋体标点符号全角、半角一样吗? 我用的是wps 写小说 发现半角和全角的标点一样啊 都是占一个字符啊如图

看你的中文字输入第二个按钮 是中文的标点 点一下那个按钮再输入一个看?

如何在FineReport中取字符串中两相邻分隔符之间的文本

使用FineReport的人经常会遇到在设计中要取两个字符之间的数据或者文本的问题。在此贡献一些公式给大家。写过代码的都知道想到的是用substr或者split函数来做,但是仔细研究一下就会发现substr只能解决取从第几个字符开始的n个字符,而split是返回的用分隔符分割的字符串,没有选择性的截取,后来找了一下,发现原来有这种算法,例子中说的是在excel中的方法,fr兼容excel所以这一点不用担心。有时需要从包含分隔符号的字符串中提取子字符串,例如Excel工作表的某列中包含类似“200-GH11301-11TB5”的文本字符串,该字符串被两个相同的分隔符号“-”分成三部分,且每部分的字符数不固定,现在需要提取其中的第2部分内容“GH11301"。这时可以使用下面的公式,假如原字符串位于A1单元格中,在B1单元格中输入如下公式:=MID(LEFT(A1,FIND("`",SUBSTITUTE(A1,"-","`",2))-1),FIND("`",SUBSTITUTE(A1,"-","`",1))+1,LEN(A1))公式说明:本例用SUBSTITUTE函数将两个分隔符号“-”替换为“`”,“`”符号位于数字“1”键的左侧,也可改为字符串中没有出现的其他特殊符号。然后用FIND函数查找第二个“`”出现的位置并用LEFT函数去掉第二个“`”后面的部分,最后用MID函数提取所需内容。由于MID函数的第三个参数“LEN(A1)”大于所提取文本的字符数,因而本公式适用于各部分长度不固定的字符串。 也可使用下面的公式:=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1),LEN(A1)))公式说明:REPT(" ",LEN(A1))产生一个与原字符串长度相同的空格字符串,用SUBSTITUTE函数将其替换各分隔符号,这样所需提取文本的前后就都包含了与原字符串长度相同的空格字符串,再用MID函数进行截取,截取后的字符串前后都包含一些空格,最后用TRIM函数去掉这些空格即得到所需文本。本例原字符串中有2个分隔符号,第一部分有3个字符,第二部分有7个字符,第三部分有5个字符,字符串总长度LEN(A1)=17,MID函数截取后“GH11301”的前面就有4(3+17-17+1)个空格,后面就有6(17-4-7)个空格。 如果字符串中包含更多的分隔符号,如“1130-80-F030305-5TB1-T(40)”,要提取各部分内容,可以将公式改为:提取第一部分:=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),1,LEN(A1)))或者直接用公式:=LEFT(A1,FIND("-",A1)-1)提取其他部分,如第3部分“F030305”:=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),2*LEN(A1),LEN(A1)))本例中提取字符串中的第3部分,公式中用红色标识的数字为“2”,如果是第N部分,则为N-1。

C++中A是字符串,A.erase(0,1)是什么意思?

删除string类型A中从0下表开始,1个字符。

编写函数delstr(str1,str2)。其中str1和str2为两个字符串。

#include <stdio.h>#include <string.h>void replace(char *s, const char *t) { char *p, *q, *r; if (*t == "" || (p = strstr(s, t)) == NULL) return ; r = p; p += strlen(t); while ((q = strstr(p, t)) != NULL) { memmove(r, p, q - p); r += q - p; p += q - p + strlen(t); } memmove(r, p, strlen(s) - (p - s)); r += strlen(s) - (p - s); *r = ""; } int main(){ char s[100] = "howareyouareGGGare"; char t[100] = "are"; replace(s, t); printf("%s ", s);}

Python 和 C++ 下字符串查找速度对比,你觉得Python适合算法竞赛吗

一位同学最近在备战一场算法竞赛,语言误选了 Python ,无奈只能着手对常见场景进行语言迁移。而字符串查找的场景在算法竞赛中时有出现。本文即对此场景在 Python 和竞赛常用语言 C++ 下的速度进行对比,并提供相关参数和运行结果供他人参考。 本次实测设置两个场景:场景 1 的源串字符分布使用伪随机数生成器生成,表示字符串查找的平均情况;场景 2 的源串可连续分割成 20,000 个长度为 50 的字符片段,其中第 15,001 个即为模式串,形如“ab…b”(1 个“a”,49 个 “b”),其余的字符片段形如“ab…c”(1 个“a”,48 个“b”,1 个“c”)。 本次实测中,Python 语言使用内置类型 str 的 .find() 成员函数,C++ 语言分别使用 string 类的 .find() 成员函数、 strstr 标准库函数和用户实现的 KMP 算法。 IPython 的 %timeit 魔法命令可以输出代码多次执行的平均时间和标准差,在此取平均时间。C++ 的代码对每个模式串固定运行 1,000 次后取平均时间。 以下时间若无特别说明,均以微秒为单位,保留到整数位。 * 原输出为“2.63 ms”。IPython 的 %timeit 输出的均值保留 3 位有效数字,由于此时间已超过 1 毫秒,微秒位被舍弃。此处仍以微秒作单位,数值记为“2630”。 本次实测时使用的设备硬件上劣于算法竞赛中的标准配置机器,实测结果中的“绝对数值”参考性较低。 根据上表中的结果,在给定环境和相关参数条件下,场景 1 中 Python 的运行时间大约为 C++ 中 string::find 的五分之一,与 std:strstr 接近;而在场景 2 中 Python 的运行时间明显增长,但 C++ 的前两种测试方法的运行时间与先前接近甚至更短。四次测试中,C++ 的用户实现的 KMP 算法运行时间均较长,长于同条件下 Python 的情况。 Python 中的内置类型 str 的快速查找( .find() )和计数( .count() )算法基于 Boyer-Moore 算法 和 Horspool 算法 的混合,其中后者是前者的简化,而前者与 Knuth-Morris-Pratt 算法 有关。 有关 C++ 的 string::find 比 std::strstr 运行时间长的相关情况,参见 Bug 66414 - string::find ten times slower than strstr 。 Why do you think strstr should be slower than all the others? Do you know what algorithm strstr uses? I think it"s quite likely that strstr uses a fine-tuned, processor-specific, assembly-coded algorithm of the KMP type or better. In which case you don"t stand a chance of out-performing it in C for such small benchmarks. KMP 算法并非是所有线性复杂度算法中最快的。在不同的环境(软硬件、测试数据等)下,KMP 与其变种乃至其他线性复杂度算法,孰优孰劣都无法判断。编译器在设计时考虑到诸多可能的因素,尽可能使不同环境下都能有相对较优的策略来得到结果。因而,在保证结果正确的情况下,与其根据算法原理自行编写,不如直接使用标准库中提供的函数。 同时本次实测也在运行时间角度再次印证 Python 并不适合在算法竞赛中取得高成绩的说法,你们觉得呢?平仑区留下你的看法。

c语言截断字符串

百度“正则表达式”,慢慢学,挺简单的,

C语言 输入一个字符串,统计一个字符串在其中出现的次数,不要用指针

#include "iostream.h"#include "conio.h"#include<string>void main(){char chr[255]; //装字符串的数组int sum=0; //记数用的变量cin>>chr; //接受键盘输入 别输入空格,有空格就列熊了,切记string str=chr; //转换成string类型for(int i=1;i<str.size();i++){if(chr[i-1]=="a") // 算法,可以改要查找的字符串。 if(chr[i]=="s") if(chr[i+1]=="d") sum++;}cout<<sum;getch();}

C语言字符串拆分

使用strstr函数嘛(以下代码测试通过)功能:在一个字符串中查找特定的字符串,如果查找到会返回查找到字符串的位置,失败返回NULL分析:搜索字符串"bizbox_userlang=",成功后取出"="后和‘="后第1个";"之间的所有字符#include <stdio.h>int main(int argc, char* argv[]){char buf1[]="bizbox_username=admin; bizbox_userpass=c1501f6698e058e47d3f81f723c2b9f2; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null";char *buf2="bizbox_userlang=";char *ptr;char txt[100];ptr=strstr(buf1,buf2); //成功返回的位置是"bizbox_userlang=zh; csd=33...."if( ptr==NULL){printf("没有找到该内容 ");return -1;

c#字符串(字母+数字)累加

int i=1234;string str="abcd";Console.WriteLine(str + i);输出结果就是 abcd1234.所以你只要保持字符串str不变,i随便你变动,然后在调用console。write打印输出的时候写成 str+i就可以了。

求解一个c语言的字符串问题?

C不是字符串,是某一个字符。while((c=getchar())!=" ")的功能是连续输入一个字符串,将这字符串中的每一个字符分别赋值给C然后进行处理。因此,if(c>="a"&&c<="z"||c>="A"&&c<="Z")就是用于判断某一个字符是不是字母的功能。

php数组元素中返回不包含某些字符串 大神帮忙!!

foreach($a as $k=>$v){if(strpos($v,"shiyong")===false){$c[]=$v;}

C++中怎么在string字符串中找到一个字符

strstr函数

C语言中如何查找字符串?

用strstr这个函数 包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(char *str1, char *str2); 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。 返回值:返回该位置的指针,如找不到,返回空指针。 源代码: #include #include//调用string.h中的strstr函数 void main(){ char ch1[255]="abcde"; char ch2[100]="cd"; char* ch;//用于接受返回值 if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串 printf("-1 "); }else{//说明找到了那个字符串 printf("%d ",ch-ch1+1);//cde的地址减去abcde的地址+1 } }

C语言字符串处理的库函数有哪些

函数名: strrchr 功 能: 在串中查找指定字符的最后一个出现 用 法: char *strrchr(char *str, char c);举例:[cpp] view plain copychar fullname="./lib/lib1.so"; char *ptr; ptr = strrchr(fullname,"/"); printf("filename is %s",++ptr); //运行结果:filename is lib1.so 函数名: strchr 功 能: 在串中查找指定字符的第一个出现 用 法: char *strchr(char *str, char c);举例:[cpp] view plain copychar fullname="./lib/lib1.so"; char *ptr; ptr = strrchr(fullname,"."); printf("after strchr() is %s",++ptr); //运行结果:after strchr() is /lib/lib1.so 函数名: strtok 功 能: 在串中查找指定字符的第一个出现 用 法: char *strtok(char *s, char *delim);说明:1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL("/0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。2.strtok函数以后的调用时的需用NULL来替换s.3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式。举例:[cpp] view plain copyvoid main() { char buf[]=”Golden Global View”; char* token = strtok( buf, ” “); while( token != NULL ) { printf( ”%s “, token ); token = strtok( NULL, ” “); } return 0; } /*其结果为: Golden Global View */ 函数名:strncpy功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中用法:char *strncpy(char *dest, char *src, int n);说明: 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。举例:[c-sharp] view plain copy #include <syslib.h> #include <string.h> main() { char buf[4]; char *s="abcdefg"; strncpy(buf,s,4); printf("%s/n",buf); return 0; } /*运行结果: abcd */ 函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%s/n", string); return 0; } /*运行结果 abcdefghi */ 函数名: strcat功 能: 字符串拼接函数用 法: char *strcat(char *destin, char *source);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char destination[25]; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%s/n", destination); return 0; } /*运行结果: Borland C++ */ 函数名: strcmp功 能: 串比较用 法: int strcmp(char *str1, char *str2);看Asic码,str1>str2,返回值 > 0;两串相等,返回0举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *buf1 = "aaa", *buf2 = "bbb"; int ptr; ptr = strcmp(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1/n"); else if(ptr < 0) printf("buffer 2 is less than buffer 1/n"); else printf("buffer 2 is equal with buffer 1/n"); return 0; } /*运行结果: buffer 2 is greater than buffer 1 */ 函数名: strncmpi功 能: 将一个串中的一部分与另一个串比较, 不管大小写用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *buf1 = "BBB", *buf2 = "bbb"; int ptr; ptr = strcmpi(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1/n"); if (ptr < 0) printf("buffer 2 is less than buffer 1/n"); if (ptr == 0) printf("buffer 2 equals buffer 1/n"); return 0; } 函数名: strcspn功 能: 在串中查找第一个给定字符集内容的段用 法: int strcspn(char *str1, char *str2);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> #include <alloc.h> int main(void) { char *string1 = "1234567890"; char *string2 = "747DC8"; int length; length = strcspn(string1, string2); printf("Character where strings intersect is at position %d/n", length); return 0; } 函数名: strdup功 能: 将串拷贝到新建的位置处用 法: char *strdup(char *str);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> #include <alloc.h> int main(void) { char *dup_str, *string = "abcde"; dup_str = strdup(string); printf("%s/n", dup_str); free(dup_str); return 0; } 函数名: stricmp功 能: 以大小写不敏感方式比较两个串用 法: int stricmp(char *str1, char *str2);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *buf1 = "BBB", *buf2 = "bbb"; int ptr; ptr = stricmp(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater than buffer 1/n"); if (ptr < 0) printf("buffer 2 is less than buffer 1/n"); if (ptr == 0) printf("buffer 2 equals buffer 1/n"); return 0; } 函数名: strerror功 能: 返回指向错误信息字符串的指针用 法: char *strerror(int errnum);举例:[cpp] view plain copy#include <stdio.h> #include <errno.h> int main(void) { char *buffer; buffer = strerror(errno); printf("Error: %s/n", buffer); return 0; } 函数名: strncmp功 能: 串比较用 法: int strncmp(char *str1, char *str2, int maxlen);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc"; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1/n"); else printf("buffer 2 is less than buffer 1/n"); ptr = strncmp(buf2,buf3,3); if (ptr > 0) printf("buffer 2 is greater than buffer 3/n"); else printf("buffer 2 is less than buffer 3/n"); return(0); } 函数名: strncmpi功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写用 法: int strncmpi(char *str1, char *str2, int len);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *buf1 = "BBBccc", *buf2 = "bbbccc"; int ptr; ptr = strncmpi(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1/n"); if (ptr < 0) printf("buffer 2 is less than buffer 1/n"); if (ptr == 0) printf("buffer 2 equals buffer 1/n"); return 0; } 函数名: strnset功 能: 将一个串中的所有字符都设为指定字符用 法: char *strnset(char *str, char ch, unsigned n);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz"; char letter = "x"; printf("string before strnset: %s/n", string); strnset(string, letter, 13); printf("string after strnset: %s/n", string); return 0; } 函数名: strpbrk功 能: 在串中查找给定字符集中的字符用 法: char *strpbrk(char *str1, char *str2);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> int main(void) { char *string1 = "abcdefghijklmnopqrstuvwxyz"; char *string2 = "onm"; char *ptr; ptr = strpbrk(string1, string2); if (ptr) printf("strpbrk found first character: %c/n", *ptr); else printf("strpbrk didn"t find character in set/n"); return 0; } 函数名: strrev功 能: 串倒转用 法: char *strrev(char *str);举例:[cpp] view plain copy#include <string.h> #include <stdio.h> int main(void) { char *forward = "string"; printf("Before strrev(): %s/n", forward); strrev(forward); printf("After strrev(): %s/n", forward); return 0; } /*运行结果: Before strrev(): string After strrev(): gnirts */ 函数名: strstr功 能: 在串中查找指定字符串的第一次出现用 法: char *strstr(char *str1, char *str2);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> int main(void) { char *str1 = "Borland International", *str2 = "nation", *ptr; ptr = strstr(str1, str2); printf("The substring is: %s/n", ptr); return 0; } 函数名: strtod功 能: 将字符串转换为double型值用 法: double strtod(char *str, char **endptr);举例:[cpp] view plain copy#include <stdio.h> #include <stdlib.h> int main(void) { char input[80], *endptr; double value; printf("Enter a floating point number:"); gets(input); value = strtod(input, &endptr); printf("The string is %s the number is %lf/n", input, value); return 0; } 函数名: strtol功 能: 将串转换为长整数用 法: long strtol(char *str, char **endptr, int base);举例:[cpp] view plain copy#include <stdlib.h> #include <stdio.h> int main(void) { char *string = "87654321", *endptr; long lnumber; /* strtol converts string to long integer */ lnumber = strtol(string, &endptr, 10); printf("string = %s long = %ld/n", string, lnumber); return 0; } 函数名: strupr功 能: 将串中的小写字母转换为大写字母用 法: char *strupr(char *str);举例:[cpp] view plain copy#include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz", *ptr; /* converts string to upper case characters */ ptr = strupr(string); printf("%s/n", ptr); return 0; }

php 判断一个字符串里是否有某个字符

PHP 判断字符串是否包含其它字符以下几个函数均可用来判断某字符串是否包含另外一个字符串PHP 中判断一个字符串是否包含其它字符是很常见的操作。 虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。 如果这几个函数恰好能帮上你的忙,我将会很高兴的。这几个函数中,我比较喜欢第四个。。。复制代码 代码如下:<?php/*** 以下几个函数均可用来判断某字符串是否包含另外一个字符串* PHP 中判断一个字符串是否包含其它字符是很常见的操作。* 虽然很简单,但还是写了几个函数,质量可能不是很高,权当锻炼。* 如果这几个函数恰好能帮上你的忙,我将会很高兴的。*//*** 利用一下 strpos() 函数* @param unknown_type $haystack* @param unknown_type $needle*/function isInString1($haystack, $needle) {//防止$needle 位于开始的位置$haystack = "-_-!" . $haystack;return (bool)strpos($haystack, $needle);}/*** 利用字符串分割* @param unknown_type $haystack* @param unknown_type $needle*/function isInString2($haystack, $needle) {$array = explode($needle, $haystack);return count($array) > 1;}/*** 用了一下正则,这种方法十分不建议,尤其是 $needle 中包含* 特殊字符,如 ^,$,/ 等等* @param unknown_type $haystack* @param unknown_type $needle*/function isInString3($haystack, $needle) {$pattern = "/" . $needle . "/";return (bool)preg_match($pattern, $haystack);}/*** 利用一下 strpos() 函数* @param unknown_type $haystack* @param unknown_type $needle*/function isInString4($haystack, $needle) {return false !== strpos($haystack, $needle);}//测试$haystack = "I am ITBDW";$needle = "IT";var_dump(isInString1($haystack, $needle));我觉得最简单的就是这种了 strpos($a, $b) !== false 如果$a 中存在 $b,则为 true ,否则为 false。用 !== false (或者 === false) 的原因是如果 $b 正好位于$a的开始部分,那么该函数会返回int(0),那么0是false,但$b确实位于$a中,所以要用 !== 判断一下类型,要确保是严格的 false。昨天晚上去中关村图书大厦,看到一本书中用的是 strpos === true 来判断,这是极其不正确的。。。出错的书为《PHP求职宝典》107页(2012-02-26更新)其它的还有 PHP 原生支持的函数,如 strstr(),stristr() 等,直接判断就可以了。

c语言:编写本章中的6个字符串处理函数

char *strcpy(char *strDes, const char *strSrc) { assert((strDes != NULL) && (strSrc != NULL)); char *address = strDes; while ((*strDes ++ = *strSrc ++) != "") NULL; return address; }char *strchr_(char *str, int c) { assert(str != NULL); while ((*str != (char) c) && (*str != "")) str ++; if (*str != "") return str; return NULL; }char *strchr(const char *str, int c) { assert(str != NULL); for (; *str != (char) c; ++ str) if (*str == "") return NULL; return (char *) str; }int strcmp(const char *s, const char *t) { assert(s != NULL && t != NULL); while (*s && *t && *s == *t) { ++ s; ++ t; } return (*s - *t); }char *strcat(char *strDes, const char *strSrc) { assert((strDes != NULL) && (strSrc != NULL)); char *address = strDes; while (*strDes != "") ++ strDes; while ((*strDes ++ = *strSrc ++) != "") NULL; return address; }int strlen(const char *str) { assert(str != NULL); int len = 0; while (*str ++ != "") ++ len; return len; }char *strdup(const char *strSrc) { assert(strSrc != NULL); int len = 0; while (*strSrc ++ != "") ++ len; char *strDes = (char *) malloc (len + 1); while ((*strDes ++ = *strSrc ++) != "") NULL; return strDes; }char *strstr(const char *strSrc, const char *str) { assert(strSrc != NULL && str != NULL); const char *s = strSrc; const char *t = str; for (; *t != ""; ++ strSrc) { for (s = strSrc, t = str; *t != "" && *s == *t; ++s, ++t) NULL; if (*t == "") return (char *) strSrc; } return NULL; }char *strncpy(char *strDes, const char *strSrc, int count) { assert(strDes != NULL && strSrc != NULL); char *address = strDes; while (count -- && *strSrc != "") *strDes ++ = *strSrc ++; return address; }char *strncat(char *strDes, const char *strSrc, int count) { assert((strDes != NULL) && (strSrc != NULL)); char *address = strDes; while (*strDes != "") ++ strDes; while (count -- && *strSrc != "" ) *strDes ++ = *strSrc ++; *strDes = ""; return address; }int strncmp(const char *s, const char *t, int count) { assert((s != NULL) && (t != NULL)); while (*s && *t && *s == *t && count --) { ++ s; ++ t; } return (*s - *t); }

C语言求一个关于字符串的函数

可利用strstr函数。strstr函数功能是找出字符串中特定字符串第一次出现的位置。如果找到,返回字符串中出现特定字符串的地址;如果没找到,返回空指针。如果要返回值是bool型的话,可以自写一个函数根据strstr的返回值,判断自写函数的返回值。如:boolstrfind(*str1,*str2){if(strstr(*str1,*str2)!=0)returntrue;returnfalse;}如果要不区分大小写,可以用strlwr(转换为大写)或strupr(转换为小写)将两字符串同一转换为大写(或小写)再作查找。

在C或C++中的寻找指定字符串的函数

同意楼上

C语言中怎么判断一个字符串包含在另一个字符串里面

char flg;char a[4] ="abc";char b[3] ="ab";flg = strstr (a,b)//判断b是否在a里 在的话flg=1,不在flg=0

linux下用c程序获取字符串中的字符串。strstr以及int到char指针的强制类型转换

len = ((char *)(&(system("ifconfig eth0")))); 这行&去掉就可以了调用system返回int,直接可以进行强转

c语言如何查找字符串?

不用自己写,有一个函数叫strstr,原型是 char *strstr(char *str1, char *str2),功能是找出str2字符串在str1字符串中第一次出现的位置。 可以这样写:char *p=strstr(a,b);if(NULL != p){ //a中不存在b,添加相应代码}else{ //a中存在b,添加相应代码}返回值p为a中第一次出现b的位置 这个函数要包含头文件string.h

C语言,问一个函数,检索并且返回某字符在某字符串中第一次出现的位置。是什么函数,返回值有哪些?急

如下: 函数名: strstr 功能: 在字符串中查找指定字符串的第一次出现 用法: char *strstr(char *str1, char *str2); strstr原型:extern char *strstr(char *haystack, char *needle); 头文件:#include <string.h> 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 编辑本段函数原型 1.Copyright 1990 Software Development Systems, Inc. char *strstr( const char *s1, const char *s2 ) { int len2; if ( !(len2 = strlen(s2)) ) return (char *)s1; for ( ; *s1; ++s1 ) { if ( *s1 == *s2 && strncmp( s1, s2, len2 )==0 ) return (char *)s1; } return NULL; } 2.Copyright 1986 - 1999 IAR Systems. All rights reserved char *strstr(const char *s1, const char *s2) { int n; if (*s2) { while (*s1) { for (n=0; *(s1 + n) == *(s2 + n); n++) { if (!*(s2 + n + 1)) return (char *)s1; } s1++; } return NULL; } else return (char *)s1; } 编辑本段举例 // strstr.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } 语法:* strstr(str1,str2) str1: 被查找目标 string expression to search. str2:要查找对象 The string expression to find. 该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0. 例子: 功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy” (假设xxx和yyy都是一个未知的字串) char *s=” string1 onexxx string2 oneyyy”; char *p; p=strstr(s,”string2”); if(p==NULL) printf(“Not Found!”); p=strstr(p,”one”); if(p==NULL) printf(“Not Found!”); p+=strlen(“one”); printf(“%s”,p); 说明:如果直接写语句p=strstr(s,”one”),则找到的是onexxx string2 oneyyy,不符合要求 所以需采用二次查找法找到目标

C语言判断一个字符串是否是另一个字符串的子串

1、首先,定义两个整型变量,保存判断的数和同构串计数。2、定义3字符串变量,保存用来判断的同构字符串和用来判断包含多少同构字符串的字符串,以及字符串的子串。3、定义两个整型变量,保存同构字符串中所有字母的数量。4、重置数组n的值,初值为0。5、判断字符串的子串,是否为同构子串。6、如果子串是同构子串,则统计值自加1。7、运行程序,输入两个字符串后,电脑就会统计出所有同构子串的数量。

c语言—编程统计字符串s(不是字母s是某个子串)在字符串str中出现的次数

strstr函数搞定

求一个用C或者C++写反向查找字符串的函数

int rfind(const char*source ,const char* match){ int slen,mlen,i; char *p,*q; p =source; q=match; slen =strlen(source); mlen =strlen(match); i= slen -mlen; for(;i>0;i--) { if(strncmp(p+i,q,mlen)==0) { return i; } } return -1;}

c语言查找字符串

a[0]==b[0];a[1]==b[1];……还是自己写个函数好点,毕竟很简单啊!!!!

哪位大侠知道为什么LINUX下C的strstr()函数一查到空格就不在向后查找了(别的什么什么字符都行,就空格不行)

可能跟你查找的汉字有关系,因为汉字占两个字节,和相邻的字符组合起来的ASCII会乱。。你把汉字换成英文字符串试试,应该不会有问题。

C语言中如何查找字符串?

不用自己写,有一个函数叫strstr,原型是char*strstr(char*str1,char*str2),功能是找出str2字符串在str1字符串中第一次出现的位置。可以这样写:char*p=strstr(a,b);if(NULL!=p){//a中不存在b,添加相应代码}else{//a中存在b,添加相应代码}返回值p为a中第一次出现b的位置这个函数要包含头文件string.h

C语言,判断字符串2(str2)是否在str1内的那个函数怎么用?请详细说下,搜了几个看不是太懂,菜鸟,谢了

函数原型:char *strstr(char *str1, char *str2) 作用:在str1中查找str2第一次出现的位置参数:str1:在这个字符串里找。str2:需要找的字符串返回值:如果找到了,则返回在str1中的位置,否则返回NULL。如:char str1[]={"abcdefg"};那么strstr(str1,"cde")的结果就是 &str1[2] 或者说 str1+2

C语言 字符串查找(要代码)

最简单的方法,直接用库函数strstr#include <stdio.h>#include <string.h>int str(char *a,char *b){ char *p; if(p=strstr(a,b)) return p-a+1; return -1;}int main(){ printf("%d ",str("abcde","cd")); return 0;}

C语言库函数 strstr 查找字符串时是否区分大小写和空格?

char s[1];什么都不能存储值gets()函数)读取字符并把它们加载到s(字符串)里字符串以结尾

strstr能不能以十六进制的方式查找字符串中的字符?

你确定字符串里面可以包含 ‘0x07",‘ 0xFF", 这个好像不是可见字符

c语言字符串匹配的问题

晕!这就是最简单的了,你把头文件string.h包含起来调用strstr()函数就完成了。string.h的库函数strstr()帮你完成此项功能,strstr()的功能就是在一个字符串中查找另一个字符串。下面是测试函数及strstr()函数。#include#include#includeintmain(void)/*测试strstr()*/{char*A="abcdefghi",*B,*C;B=(char*)malloc(10);memset(B,0,sizeof(B));C=(char*)malloc(10);memset(C,0,sizeof(C));B[0]="f";B[1]="g";B[2]="h";C=strstr(A,B);printf("A="%s" ",A);printf("B="%s" ",B);printf("C="%s" ",C);return0;}#if0/*strstr()函数的返回值为s中匹配字窜的地址*/char*strstr(constchar*s,/*stringtosearch*/constchar*find/*substringtolookfor*/){char*t1;char*t2;charc;charc2;if((c=*find++)==0)/*anemptystring*/return((char*)(s));for(;;){while(((c2=*s++)!=0)&&(c2!=c));if(c2==0)return(NULL);t1=(char*)(s);t2=(char*)(find);while(((c2=*t2++)!=0)&&(*t1++==c2));if(c2==0)return((char*)(s-1));}}#endif

php查询字符串里面是否有某个字符

PHP中如何判断一个字符串中是否有某个字符,如下:PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过explode函数的作用写一个判断函数。1. strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含代码如下:< ?php /*如手册上的举例*/ $email = "user@example.com"; $domain = strstr($email, "@"); echo $domain; // prints @example.com ?> 2. stristr: 它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.3. strpos: 返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好. PHP判断字符串的包含代码如下:$str= "abc"; $needle= "a"; $pos = strpos($str, $needle); 4. 用explode进行判断 PHP判断字符串的包含代码如下:function checkstr($str){ $needle = "a";//判断是否包含a这个字符 $tmparray = explode($needle,$str); if(count($tmparray)>1){ return true; } else{ return false; } }

C语言字符串替换,用strstr函数和strncpy函数,hello world ,替换之后hel

char str[20]="hello worlddd"; strncpy(strstr(str,"world"),"hello",sizeof("hello")-1);

C语言,问一个函数,检索并且返回某字符在某字符串中第一次出现的位置。是什么函数,返回值有哪些?急

如下: 函数名: strstr   功 能: 在字符串中查找指定字符串的第一次出现   用 法: char *strstr(char *str1, char *str2);   strstr原型:extern char *strstr(char *haystack, char *needle);   头文件:#include <string.h>   功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。   说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 编辑本段函数原型   1.Copyright 1990 Software Development Systems, Inc.   </B>char *strstr( const char *s1, const char *s2 )   {   int len2;   if ( !(len2 = strlen(s2)) )   return (char *)s1;   for ( ; *s1; ++s1 )   {   if ( *s1 == *s2 && strncmp( s1, s2, len2 )==0 )   return (char *)s1;   }   return NULL;   }   2.Copyright 1986 - 1999 IAR Systems. All rights reserved   char *strstr(const char *s1, const char *s2)   {   int n;   if (*s2)   {   while (*s1)   {   for (n=0; *(s1 + n) == *(s2 + n); n++)   {   if (!*(s2 + n + 1))   return (char *)s1;   }   s1++;   }   return NULL;   }   else   return (char *)s1;   } 编辑本段举例   // strstr.c   #include <syslib.h>   #include <string.h>   main()   {   char *s="Golden Global View";   char *l="lob";   char *p;   clrscr();   p=strstr(s,l);   if(p)   printf("%s",p);   else   printf("Not Found!");   getchar();   return 0;   }   语法:* strstr(str1,str2)   str1: 被查找目标 string expression to search.   str2:要查找对象 The string expression to find.   该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL   The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0.   例子:   功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”   (假设xxx和yyy都是一个未知的字串)   char *s=” string1 onexxx string2 oneyyy”;   char *p;   p=strstr(s,”string2”);   if(p==NULL) printf(“Not Found!”);   p=strstr(p,”one”);   if(p==NULL) printf(“Not Found!”);   p+=strlen(“one”);   printf(“%s”,p);   说明:如果直接写语句p=strstr(s,”one”),则找到的是onexxx string2 oneyyy,不符合要求   所以需采用二次查找法找到目标

java中怎样画出3行3列的、可以填充字符的表格?

import javax.swing.*;public class DrawTable extends JFrame{ JTable jt=null; public DrawTable(){ jt=new JTable(3,3); this.add(jt); this.setVisible(true); this.pack(); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); } public static void main(String[] args) { DrawTable dt=new DrawTable(); }}

c语言的查找字符串函数strstr效率高吗?源码有谁知道的

一般情况下,strstr的表现是要比KMP优秀。你可以百度下strstr和kmp。

java 如何删除一个字符串中出现次数最少的字符。比如addffdf 输出 ddffdf

代码暂时没环境,可以给你说思路:一、创建HashMap,然后统计字符串每个字母的次数,将字母作为HashMap的键,字母出现的次数作为值二、得到最小的值,然后得到对应的字母三、String.split("字母"),得到不包含该字符的字符串数据四、用StringBuffer将这些字符串连接起来,最终得到需要的字符串不懂可以继续提问O(∩_∩)O

格式化字符串是什么意思?

一种解释: 将某种格式的字符串转化为另外一种格式。如String型转为int型 另外一种解释: 未格式化的样子: function ctlSubmit(event) {if (event.ctrlKey && event.keyCode == 13) {fdf.submit()}} function checkco(f,des){ if(f.co.value=="") {alert("请输入您的"+des); return false;}} function limitpl(f,des){ if(f.co.value=="") {alert("请输入您的"+des); return false;} return limitChars(f.co,des,200);}格式化以后的样子: function ctlSubmit(event) { if (event.ctrlKey && event.keyCode == 13) { fdf.submit(); } } function checkco(f,des) { if(f.co.value=="") { alert("请输入您的"+des); return false; } } function limitpl(f,des) { if(f.co.value=="") { alert("请输入您的"+des); return false; } return limitChars(f.co,des,200); }目的就是让程序可读性增强。 百度不能实现文字缩进,哎... 将就着看吧,就这么个意思。

如何更改Oracle字符集

如何更改Oracle字符集国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字。UTF8字符集是多字节存储,1个汉字(简体、繁体)有时采用3个字符长度存储。Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是说UTF8是ZHS16GBK的严格超集。对于子集到超集的转换,Oracle是允许的,但是对于超集到子集的转换是不允许的。一般对于超集到子集的转换,建议是通过dbca删除原来的数据库,重新再建库,选择正确的字符集,然后导入备份。我的方案是:先备份数据,然后强制转换字符集从UTF8到ZHS16GBK,然后导入备份数据。如果不行,才来重新建库,设置字符集ZHS16GBK,导入备份数据。如果这还不行,就把更改字符集从ZHS16GBK到UTF8(这是安全的),再导入备份数据,恢复到原始状况。这样就有可能避开重新建库的麻烦。1. 备份数据库中所有用户的数据以oracle用户登陆,执行以下命令# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.UTF8”保持与数据库服务器端一致,这样在exp导出时,就不会存在字符的转换了,备份最原始的数据。2. 评估UTF8转换成ZHS16GBK的风险转换之前,要使用Oracle的csscan工具对数据库扫描,评估字符集转换前后,数据有可能的损坏情况。如果评估情况糟糕,那就绝对要放弃了。先安装属于 CSMIG 用户的一套表和过程。以oracle用户登陆UNIX,#sqlplus “/ as sysdab”SQL>@$ORACLE_HOME/ rdbms/admin/csminst.sqlSQL>exit# $ORACLE_HOMEincsscan -help可以更清楚如何使用csscan。# $ORACLE_HOME/bin/csscan system/sunday user=mmsc FROMCHAR=UTF8 TOCHAR=ZHS16GBK ARRAY=102400 PROCESS=3 > csscan.log以上命令意思是扫描用户:mmsc中的所有数据,从字符集UTF8更改为ZHS16GBK的转换情况。然后得到三个文件:scan.txt、scan.out、scan.err。查看scan.out,scan.err,可以看出mmsc用户下的所有的数据都是可以转换的,并且没有出现转换“Exceptional”的情况,因此可以更放心一点。3. 更改数据库的字符集为ZHS16GBK前面说过,通过命令“Alter Database Characeter Set XXXX”,实现从超集到子集的转换,在Oracle是不允许的。但是该命令,提供这样的命令方式:Alter Database Character Set INTERNAL_CONVERT/ INTERNAL_USE XXXX这是Oracle的非公开命令。“在使用这个命令时,Oracle会跳过所有子集及超集的检查,在任意字符集之间进行强制转换,所以,使用这个命令时你必须十分小心,你必须清楚这一操作会带来的风险”。以oracle用户登陆UNIX,#sqlplus “/ as sysdba”SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER SESSION SET SQL_TRACE=TRUE;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL> ALTER DATABASE OPEN; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; //如果不使用“INTERNAL_USE”参数,系统会提示出错://ERROR at line 1://ORA-12712: new character set must be a superset of old character setSQL> ALTER SESSION SET SQL_TRACE=FALSE;SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;此时,检查一下数据库的字符集是否更改过来SQL> select value$ from props$ where name="NLS_CHARACTERSET";VALUE$-----------------ZHS16GBK紧接着检查一下数据库中简体中文、繁体中文是否正常,不会出现乱码。SQL>select spid,spname,spshortname from spinfovisual_hk …...非常不幸,我看到了一堆乱码,这也证明了Oracle不支持字符集从超集到子集的更改,当时心里很紧张,很怕失败,从而恢复到原样。但是根据以前的验证,把UTF8下的备份导入到ZHS16GBK中去,是OK的,所以继续尝试。4. 导入备份的用户数据还是以oracle用户登陆UNIX, 先删除库中的用户mmsc:#sqlplus “/ as sysdba”SQL>drop user mmsc cascade;SQL>exit再运行createuser.sql,生成mmsc用户。然后使用原来的备份文件,导入到mmsc用户中:注意:先设置NLS_LANG要与当前数据库的一致:ZHS16GBK。这样,导出时用户会话的NLS_LANG为UTF8,与原先的数据库字符集一致;现在为ZHS16GBK,与此时的数据库字符集一致。这样,导入时,就会进行字符转换。# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.ZHS16GBK”#imp mmsc/mmsc@mdspdb file=DSMPD113_user_mmsc.dmp ignore=y fromuser=mmsc touser=mmsc马上查看数据库中简体、繁体中文,哈哈,没有乱码了,一切显示正常。紧接着进行验证,也证明了:1个汉字此时只占用2个字符长度。问题解决了!

给aix 系统增加中文字符集,该怎么处理

1、环境服务器 AIX:编码"ISO-8859-1"数据库 informix:编码"ISO-8859-1"页面编码:"ISO-8859-1"2、Excel导入文乱码问题问题描述:Excel文件通jxl框架导入数据库乱码显示页面乱码原析:能Excel文件编码gb2312GBK或UTF-8导入数据库"ISO-8859-1"间没进行转码导致存数据库乱码页面编码"ISO-8859-1"读数据库内容乱码解决办:Excel数据导入数据库前先进行转码new String(shortname.getBytes("gb2312"),"ISO-8859-1")该构造JDK API描述String(byte[] bytes, String charsetName)构造新 String使用指定字符集解码指定字节数组备注:String(byte[] bytes, String charsetName) 解决其乱码问题同效

oracle数据库字符集怎么从utf-8改为zhs16gbk

oracle数据库的字符集更改 A、oracle server 端 字符集查询 select userenv("language") from dual 其中NLS_CHARACTERSET 为server端字符集 NLS_LANGUAGE 为 server端字符显示形式 B、查询oracle client端的字符集 $echo $NLS_LANG 如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。 C、server端字符集修改 ***************************************************************** * 更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK) * ***************************************************************** SQL> 将数据库启动到RESTRICTED模式下做字符集更改: SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL> alter database open; Database altered. SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12712: new character set must be a superset of old character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered. SQL> select * from v$nls_parameters; 略 19 rows selected. 重启检查是否更改完成: SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> select * from v$nls_parameters; 略 19 rows selected. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D、client端字符集修改 在 /home/oracle与 /root用户目录下的.bash_profile中 添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句 关闭当前ssh窗口。

如何更改Oracle字符集

如何更改Oracle字符集国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字。UTF8字符集是多字节存储,1个汉字(简体、繁体)有时采用3个字符长度存储。Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是说UTF8是ZHS16GBK的严格超集。对于子集到超集的转换,Oracle是允许的,但是对于超集到子集的转换是不允许的。一般对于超集到子集的转换,建议是通过dbca删除原来的数据库,重新再建库,选择正确的字符集,然后导入备份。我的方案是:先备份数据,然后强制转换字符集从UTF8到ZHS16GBK,然后导入备份数据。如果不行,才来重新建库,设置字符集ZHS16GBK,导入备份数据。如果这还不行,就把更改字符集从ZHS16GBK到UTF8(这是安全的),再导入备份数据,恢复到原始状况。这样就有可能避开重新建库的麻烦。1. 备份数据库中所有用户的数据以oracle用户登陆,执行以下命令# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.UTF8”保持与数据库服务器端一致,这样在exp导出时,就不会存在字符的转换了,备份最原始的数据。2. 评估UTF8转换成ZHS16GBK的风险转换之前,要使用Oracle的csscan工具对数据库扫描,评估字符集转换前后,数据有可能的损坏情况。如果评估情况糟糕,那就绝对要放弃了。先安装属于 CSMIG 用户的一套表和过程。以oracle用户登陆UNIX,#sqlplus “/ as sysdab”SQL>@$ORACLE_HOME/ rdbms/admin/csminst.sqlSQL>exit# $ORACLE_HOMEincsscan -help可以更清楚如何使用csscan。# $ORACLE_HOME/bin/csscan system/sunday user=mmsc FROMCHAR=UTF8 TOCHAR=ZHS16GBK ARRAY=102400 PROCESS=3 > csscan.log以上命令意思是扫描用户:mmsc中的所有数据,从字符集UTF8更改为ZHS16GBK的转换情况。然后得到三个文件:scan.txt、scan.out、scan.err。查看scan.out,scan.err,可以看出mmsc用户下的所有的数据都是可以转换的,并且没有出现转换“Exceptional”的情况,因此可以更放心一点。3. 更改数据库的字符集为ZHS16GBK前面说过,通过命令“Alter Database Characeter Set XXXX”,实现从超集到子集的转换,在Oracle是不允许的。但是该命令,提供这样的命令方式:Alter Database Character Set INTERNAL_CONVERT/ INTERNAL_USE XXXX这是Oracle的非公开命令。“在使用这个命令时,Oracle会跳过所有子集及超集的检查,在任意字符集之间进行强制转换,所以,使用这个命令时你必须十分小心,你必须清楚这一操作会带来的风险”。以oracle用户登陆UNIX,#sqlplus “/ as sysdba”SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER SESSION SET SQL_TRACE=TRUE;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL> ALTER DATABASE OPEN; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; //如果不使用“INTERNAL_USE”参数,系统会提示出错://ERROR at line 1://ORA-12712: new character set must be a superset of old character setSQL> ALTER SESSION SET SQL_TRACE=FALSE;SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;此时,检查一下数据库的字符集是否更改过来SQL> select value$ from props$ where name="NLS_CHARACTERSET";VALUE$-----------------ZHS16GBK紧接着检查一下数据库中简体中文、繁体中文是否正常,不会出现乱码。SQL>select spid,spname,spshortname from spinfovisual_hk …...非常不幸,我看到了一堆乱码,这也证明了Oracle不支持字符集从超集到子集的更改,当时心里很紧张,很怕失败,从而恢复到原样。但是根据以前的验证,把UTF8下的备份导入到ZHS16GBK中去,是OK的,所以继续尝试。4. 导入备份的用户数据还是以oracle用户登陆UNIX, 先删除库中的用户mmsc:#sqlplus “/ as sysdba”SQL>drop user mmsc cascade;SQL>exit再运行createuser.sql,生成mmsc用户。然后使用原来的备份文件,导入到mmsc用户中:注意:先设置NLS_LANG要与当前数据库的一致:ZHS16GBK。这样,导出时用户会话的NLS_LANG为UTF8,与原先的数据库字符集一致;现在为ZHS16GBK,与此时的数据库字符集一致。这样,导入时,就会进行字符转换。# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.ZHS16GBK”#imp mmsc/mmsc@mdspdb file=DSMPD113_user_mmsc.dmp ignore=y fromuser=mmsc touser=mmsc马上查看数据库中简体、繁体中文,哈哈,没有乱码了,一切显示正常。紧接着进行验证,也证明了:1个汉字此时只占用2个字符长度。问题解决了!

怎么样查询数据库当前所用的字符集

什么数据库,不同的数据库的查询方法不同

如何查看和修改Oracle数据库服务器端的字符集

Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。 A、oracle server 端字符集查询 select userenv("language") from dual 其中NLS_CHARACTERSET 为server端字符集 NLS_LANGUAGE 为 server端字符显示形式 B、查询oracle client端的字符集 $echo $NLS_LANG 如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。 C、server端字符集修改 将数据库启动到RESTRICTED模式下做字符集更改: SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL> alter database open; Database altered. SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1: ORA-12712: new character set must be a superset of old character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered. SQL> select * from v$nls_parameters; 略 19 rows selected. 重启检查是否更改完成: SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> select * from v$nls_parameters; 略 19 rows selected. 我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。 这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。 结语(我们不妨再说一次): 对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地, 这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训。 D、client端字符集修改 在 /home/oracle与 /root用户目录下的。bash_profile中 添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句 关闭当前ssh窗口。 注意:NLS_LANG变量一定要配置正确否则会引起sqlplus 失效。 关于Oracle数据库查看和修改服务器端的字符集的方法就介绍到这里了,希望能够对您有所收获。

如何修改Oracle数据库字符集

Database character set (AL32UTF8) and Client characterset (ZHS16GBK) are different. Character set conversion may cause unexpected results. Note: you can set the client character set through the NLS_LANG environmentvariable or the NLS_LANG registry key in HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb11g_home1. SIMPLIFIED CHINESE_CHINA.ZHS16GBK 包含 AMERICAN_AMERICA.AL32UTF8. 这可是个麻烦事,不是改客户端字符集的问题。要改数据库的字符集。我是自己笔记本上面的oracle11g,所以胆子还是很大的: SQL> conn /as sysdbaSQL> shutdown immediate; SQL> startup mount SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL> alter database open; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ORA-12712: new character set must be a superset of old character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; --我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验. SQL> select * from v$nls_parameters; SQL> shutdown immediate; SQL> startup SQL> select * from v$nls_parameters; 以后安装oracle11g的时候记得选择自定义安装,把这个字符集的事情事先弄好。

oracle数据库中有哪些字符集,字符集之间的子集和超集关系是怎么样的?

oracle数据库的字符集有很多的,具体的也不能一一详细地列举出来了,但是,建库的时候,会有选择字符集的界面,点开下拉条,将会列出oracle所支持的所有字符集(10/12)。超集与子集是包含和被包含的关系,超集兼容子集。

java截取路径字符串--得文件名

filename.lastIndexOf("")

C语言问题:定义一个元素是字符串的数组时,能这样定义吗?char month[]={ "dfsdf","edfdf","uyyu"}

数组定义没有问题,但是数组初始化错了,初始化时你并不是给的5个字符,你给的是5个字符串。

我要匹配点(号)前是4位字母的字符串,要如何写正则表达式呢,

var reg = /^[[a-z]{4}.[^[]]*]$/i;var str = "[hjklq.xyz]";reg.test(str);str = "[zxcv.mn]";reg.test(str)
 首页 上一页  4 5 6 7 8 9 10 11 12 13 14  下一页  尾页