33,010
社区成员
发帖
与我相关
我的任务
分享
void Main()
{
string str="so1101111/2/32/a1/4a2/5/63/b832/8/39";
string t="";
foreach(string s in str.Split('/'))
{
string m=temp(t,s);
Console.WriteLine(m);
t=m;
}
/*
so1101111
so1101112
so1101132
so11011a1
so11014a2
so11014a5
so1101463
so110b832
so110b838
so110b839
*/
}
string temp(string s,string t)
{
return s==t?s:new string(s.ToCharArray().Take(s.Length -t.Length).Concat(t.ToCharArray()).ToArray());
}
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char str[] = "so1101111/2/32/a1/4a2/5/63/b832/8/39";
char dest[20] = {0};
char* token = "//";
char* pch = strtok(str, token);
strcpy(dest, pch);
int dest_len = strlen(dest);
puts(dest); //输出第一次dest
while(pch)
{
// puts(pch);
pch = strtok(NULL, token);
if (pch)
{
// 替换dest最后几位
int num = strlen(pch);
int beg_pos = dest_len - num;
for (int i=0; i<num; i++)
{
dest[ beg_pos + i ] = pch[i];
}
puts(dest);
}
}
system("PAUSE");
return 0;
}
/*
so1101111
so1101112
so1101132
so11011a1
so11014a2
so11014a5
so1101463
so110b832
so110b838
so110b839
*/
static void Main(string[] args)
{
string str = "so1101111/2/32/a1/4a2/5/63/b832/8/39";
char[] sep = new char[]{'/'}; // 拆分分隔符
string[] arStr = str.Split(sep); // 拆分字符串
string strOut = arStr[0]; // 首字符串
Console.WriteLine(strOut);
for (int i = 1; i < arStr.Count(); ++i ) // 字符串替换
{
// 替换规则:仅替换尾部同长度的子字符串
strOut = strOut.Substring(0, strOut.Length - arStr[i].Length) + arStr[i];
Console.WriteLine(strOut);
}
Console.ReadKey();
}