8 个解决方案
#1
遍历字符串(下标。指针均可)
遇到:就换成-
遇到:就换成-
#2
俺是菜鸟,不会写,请简单写一下
#3
我不会替换啊??
#4
char str[] = "12-12-12-11:11:11"
char *p = str;
while(*p != 0)
{
if(*p == ':')
*p = '-';
p++;
}
随手写的
char *p = str;
while(*p != 0)
{
if(*p == ':')
*p = '-';
p++;
}
随手写的
#5
string的replace吧
#6
下面是一个检查一个字符串中是否有'.'的函数,该函数将找到的'.'转化为'_'。
inline void checkName(string& name)
{
std::string::size_type startpos = 0;
while (startpos!= std::string::npos)
{
startpos = name.find('.'); //找到'.'的位置
if( startpos != std::string::npos ) //std::string::npos表示没有找到该字符
{
name.replace(startpos,1,"_"); //实施替换,注意后面一定要用""引起来,表示字符串
}
}
}
来自百度hI的:在狂风中摇曳
#7
CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数: chOld 要被chNew替换的字符。
chNew 要用来替换chOld的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
// 第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++" );
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n = strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n = strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang == "Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数: chOld 要被chNew替换的字符。
chNew 要用来替换chOld的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
// 第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++" );
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n = strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n = strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang == "Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
#8
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char str[] = "12-12-12-11: 11: 11";
char newstr[20];
char *p1;
char *p2;
int len;
p1 = str;
while((p2 = strstr(p1, ": "))){
len = p2-p1;
strncat(newstr, p1, len);
strcat(newstr, "-");
p1=p2+2;
}
strcat(newstr, p1);
printf("%s\n",newstr);
return 0;
}
#include <stdlib.h>
#include <string.h>
int main(){
char str[] = "12-12-12-11: 11: 11";
char newstr[20];
char *p1;
char *p2;
int len;
p1 = str;
while((p2 = strstr(p1, ": "))){
len = p2-p1;
strncat(newstr, p1, len);
strcat(newstr, "-");
p1=p2+2;
}
strcat(newstr, p1);
printf("%s\n",newstr);
return 0;
}
#1
遍历字符串(下标。指针均可)
遇到:就换成-
遇到:就换成-
#2
俺是菜鸟,不会写,请简单写一下
#3
我不会替换啊??
#4
char str[] = "12-12-12-11:11:11"
char *p = str;
while(*p != 0)
{
if(*p == ':')
*p = '-';
p++;
}
随手写的
char *p = str;
while(*p != 0)
{
if(*p == ':')
*p = '-';
p++;
}
随手写的
#5
string的replace吧
#6
下面是一个检查一个字符串中是否有'.'的函数,该函数将找到的'.'转化为'_'。
inline void checkName(string& name)
{
std::string::size_type startpos = 0;
while (startpos!= std::string::npos)
{
startpos = name.find('.'); //找到'.'的位置
if( startpos != std::string::npos ) //std::string::npos表示没有找到该字符
{
name.replace(startpos,1,"_"); //实施替换,注意后面一定要用""引起来,表示字符串
}
}
}
来自百度hI的:在狂风中摇曳
#7
CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数: chOld 要被chNew替换的字符。
chNew 要用来替换chOld的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
// 第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++" );
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n = strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n = strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang == "Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数: chOld 要被chNew替换的字符。
chNew 要用来替换chOld的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
// 第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++" );
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n = strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n = strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang == "Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
#8
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char str[] = "12-12-12-11: 11: 11";
char newstr[20];
char *p1;
char *p2;
int len;
p1 = str;
while((p2 = strstr(p1, ": "))){
len = p2-p1;
strncat(newstr, p1, len);
strcat(newstr, "-");
p1=p2+2;
}
strcat(newstr, p1);
printf("%s\n",newstr);
return 0;
}
#include <stdlib.h>
#include <string.h>
int main(){
char str[] = "12-12-12-11: 11: 11";
char newstr[20];
char *p1;
char *p2;
int len;
p1 = str;
while((p2 = strstr(p1, ": "))){
len = p2-p1;
strncat(newstr, p1, len);
strcat(newstr, "-");
p1=p2+2;
}
strcat(newstr, p1);
printf("%s\n",newstr);
return 0;
}