CC++字符串的操作Word文档下载推荐.docx
- 文档编号:923231
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:38
- 大小:27.41KB
CC++字符串的操作Word文档下载推荐.docx
《CC++字符串的操作Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CC++字符串的操作Word文档下载推荐.docx(38页珍藏版)》请在冰点文库上搜索。
intlength=arr.Length;
Reverse(arr,0,arr.Length-1);
intstart=0;
intend=0;
for(inti=0;
i<
length;
i++)
if(arr[i]=='
'
)
end=i-1;
if(start<
end)
Reverse(arr,start,end);
start=i+1;
elseif(arr[i]=='
!
'
||arr[i]=='
'
.'
Reverse(arr,start,length-1);
//mustreverse
returnarr;
//2usingstringbuilder.
stringa="
there,aresomeflowers"
//StringBuilderb=newStringBuilder();
string[]b=a.Split('
);
StringBuilderc=newStringBuilder();
for(inti=b.Length-1;
=0;
i--)
{
c.Append(b[i]).Append("
"
Console.WriteLine(c.ToString());
3,字符串移位(如:
12345678,移左边3位45678123,)
初始态----------12345678
第一步----------32145678
第二步----------32187654
第三步----------45678123
12345678"
char[]b=a.ToCharArray();
movePosition(b,3);
Console.WriteLine(b);
publicstaticvoidmovePosition(char[]arr,intstep)
Reverse(arr,0,step-1);
Reverse(arr,step,arr.Length-1);
Reverse(arr,0,arr.Length-1);
4去掉重复字符及字符串
//removetherepeatletterofthestring
stringmyString="
abacdeb"
stringfs="
"
myString.Length;
stringemtpy=myString.Substring(i,1).ToString();
if(fs.Length==0)
fs=emtpy;
if(fs.IndexOf(emtpy,0)<
0)
fs+=emtpy;
Console.WriteLine(fs);
//removetherepeatthesubstringofastring
string[]stest=newstring[]{"
aaa"
"
bbb"
ccc"
};
ArrayListlist=newArrayList();
stest.Length;
boolIsExist=true;
for(intj=0;
j<
list.Count;
j++)
if(list[j].ToString()==stest[i])
IsExist=false;
break;
if(IsExist)
list.Add(stest[i]);
foreach(stringiinlist)
Console.Write(i);
3
5用随机函数生成并输出10个两位数,找出其中的最小值并且指出它是第几个数
intmin=100;
intindex=0;
int[]sum=newint[10];
Randomran=newRandom();
Console.WriteLine("
thearrayareasfollowing:
10;
sum[i]=ran.Next(10,100);
Console.Write(sum[i]+"
sum.Length;
if(sum[j]<
min)
min=sum[j];
index=j;
theminnumberis"
+min);
thepositionis"
+index);
4
6形成数列1,2,4,7,11,16,22,……的前20项。
intsum=1;
intj=1;
20;
Console.Write(sum+"
sum=sum+j;
j++;
7
找出所有的水仙花数。
水仙花数是一个3位自然数,其值是各位数的立方和。
例如153=1^3+5^3+3^3
inthun;
intdec;
intsig;
for(inti=100;
999;
hun=i/100;
dec=i%100/10;
sig=i%10;
if(hun*hun*hun+dec*dec*dec+sig*sig*sig==i)
Console.Write(i+"
}
8
公约数函数的如下
辗转相除法
intMat(intm,intn)
{
intp;
while(m%n)
p=m%n;
m=n;
n=p;
}
return(n);
公倍数函数
intMit(intm,intn)
p=m*n/Mat(m,n);
return(p);
再说穷举法
for(n=(a+b)/2;
n>
0;
n--)
if((a%n==0)&
&
(b%n==0))break;
m=a*b/n;
n便是公约m便是公倍
n初值定为(a+b)/2,若你觉得不好你改成a+b都行,或者a、b中大的个也行随你了。
反正最大公约超不过和的一半,
从最大的数下来和你原来的思路相反的,这样好设置跳出循环的语句,对不,只要找到同时求余为0的那个就跳出因为我是从上面来的嘛,至于m穷举法也一样:
for(p=((a>
b)?
a:
b);
p++)
{if(p%a==0&
p%b==0)break;
for中条件省了,没必要。
9
打印如图所示的杨辉三角。
要求打印10行。
int[][]a=newint[10][];
inti,j;
for(i=0;
i++)
a[i]=newint[i+1];
//对角线
a[i][0]=1;
a[i][i]=1;
//calculate
for(i=2;
for(j=1;
i;
j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
//output
for(j=0;
i+1;
{Console.Write("
{0}"
a[i][j]);
Console.WriteLine();
10
Convert.ToInt32(stringvalue,intfromBase);
//将字符串转换为相应进制的二进制数字,
Convert.ToString(intvalue,inttoBase):
//将十进制数转换成相应进制的字符串。
publicstringConvertString(stringvalue,intfromBase,inttoBase)
intintValue=Convert.ToInt32(value,fromBase);
returnConvert.ToString(intValue,toBase);
//将字符串从fromBase进制转换为toBase进制。
其中fromBase,toBase可以为2,8,10和16,你有一个包含二进制数、八进制数、十进制数或十六进制数的字符串。
你需要把它转换为等价的数值并用十进制表示出来。
静态方法Convert.ToInt32有两个参数,一个包含数字的字符串和一个表示该数字进制的整数。
接着这个函数就会把这个数字字符串转换为十进制整数了。
Convert类的其他静态函数,比如ToByte,ToInt64和ToInt16,也有类似的重载,即接受一个字符串类型的数字和一个表示该数字进制的整数。
不过这些方法只能转换那些二进制、八进制、十进制或十六进制的数。
它们只能把这些数转换为十进制的数。
但是,任何类型的数值的ToString都可以转成string类型。
11有N人围成一圈,顺序排号,依次报数(从1到3),凡报3着退出圈子,求退出的顺序.
注意是退出的顺序,不是最后剩谁.程序把1~n存在数组里面,i表示当前报数到数组1~n的位置,j表示已经出列了的个数,num是大家报数的1~3,出列了的数填为0,下次报数时跳过0,完成程序如下:
staticvoidvisit(intn)
if(n<
=0)
mustbebigthen0"
return;
bool[]v=newbool[n];
inti=0;
for(i=0;
i<
n;
v[i]=true;
i=0;
intcount=n;
while(count>
0)
if((i+1)%3==0&
v[i%n]==true)
Console.WriteLine(i%n+1+"
v[i%n]=false;
count--;
i++;
12字符串求子串(求出的是子串在父串的位置数组)
publicstaticList<
int>
MyIndexOf(stringparString,stringsubString)
//存储找到子串的位置
List<
pos=newList<
();
char[]charParString=parString.ToCharArray();
char[]charSubString=subString.ToCharArray();
//记录父串比较到的位置
intparP=0;
//记录子串比较到的位置
intsubP=0;
//当父串比较到位置以后的长度+子串和父串比较完的个数没有超过父串的长度
while(parP+subP<
parString.Length)
//当子串的比较位置没有到达尾部时
while(subP<
subString.Length)
//如果比较的字符相等,则比较下一个字符
if(charParString[parP+subP]==charSubString[subP])
subP++;
else
//不相等跳出循环
//如果子串能比较到尾部,表示找到了匹配的项
if(subP==subString.Length)
pos.Add(parP);
//父串的比较位置后移子串的长度
parP=parP+subP;
//子串的比较位置复位
subP=0;
//不匹配,把父串的比较位置后移,子串的比较位置复位
parP++;
returnpos;
//求字串在大串中第一次出现的位置
publicstaticintmyf(char[]src,char[]sub)
inti,j,k;
intm=sub.Length;
intn=src.Length;
if(n<
m)return-1;
for(i=0;
=n-m;
j=0;
k=i;
while(j<
m&
src[k]==sub[j])
k++;
if(j==m)
returni;
return-1;
13
字符串替换。
Stringreplace(Stringorginal,Stringsub,Stringreplacement)
I:
stringbb=aa.Replace('
c'
'
f'
Ii:
stringbb=aa.Replace("
eee"
"
kk"
14寻找字符串中第一个无重复字符。
如"
teenage"
第一个无重复字符就是t,如"
teetel"
则第一个无重复字符就是l,要求高效。
adfjadsljagndfa;
intflag=1;
a.Length;
for(intj=i+1;
if(a[j]==a[i])
flag=0;
if(flag==1)
Console.WriteLine(a[i]);
flag=1;
15高效删除特定字符。
要求删除指定字符串中所有含remove出现的字符。
Iamagoodstudent"
需要删除"
aeiou"
则结果应该为"
Im
gdstdnt"
//1,usingthemethodsbytheclasslibrary
stringb="
char[]c=a.ToCharArray();
string[]d=b.Split(c);
foreach(stringiind)
//2usingforcycle
stringb="
stringa="
StringBuildersb=newStringBuilder();
intflag=1;
b.Length;
if(a[i]==b[j])
sb.Append(a[i]);
//initialflagforthenexttime
Console.Write(sb.ToString());
16
整数与字符串之间的转换。
//1convertstringtoint
12345"
intsum=0;
intn=1;
for(inti=a.Length-1;
i--)
sum+=int.Parse(a[i].ToString())*n;
n*=10;
Console.WriteLine(sum);
//2convertinttostring
inta=12345;
Stack<
string>
b=newStack<
stringc=null;
while(a>
=0)
//b.Append(Convert.ToString(a%10));
b.Push(Convert.ToString(a%10));
a/=10;
if(a/10==0)
b.Push(Convert.ToString(a));
foreach(stringiinb)
c+=i;
17
//判断某个给定的字符串是否为一个合法的电话号码,形如:
{xxx-}xxxxxxxx{-xxxx},{}中为可选
publicstaticboolIsPhoneNumber(stringnumber)
if(number.Length!
=8&
number.Length!
=12&
=17)
returnfalse;
char[]n=number.ToCharArray();
stringno="
0123456789"
number.Length;
++i)
if(number.Length==8)
if(no.IndexOf(n[i])==-1)
if(i==number.Length-1)
returntrue;
elseif(number.Length==12)
//start12
if(n[3]=='
-'
if(no.IndexOf(n[i])==-1&
i!
=3)
elsereturnfalse;
elseif(number.Length==17)
n[12]=='
(i!
=3&
i!
=12))
18数组的全排列
//char[]a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 字符串 操作