C++如何截取字符串中从a位置到b位置

如题所述

方法1:
//...为了说明情况,假如有b>a>0,字符串str[]长度大于b
char *p;
p = &str[a];
*(p+(&str[b]-&str[a] + 1) = '\0'; //截取到指针p方法2:
//...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b
char dest[N];
char *p;
int i;
p=dest;
for(i=a;i<=b;i++,p++) *p = str[i];//截取到dest[N]
*p = '\0';
方法3:
//...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b
char dest[N];
strcpy(dest, &str[a]);//截取到dest[N]
dest[b-a] = '\0';
方法4:
//...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b
char dest[N];
strcat(dest, &str[a]);//截取到dest[N]
dest[b-a] = '\0';
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-10
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int a,b;
string s="012345678";
a=2;
b=5;
cout<<s.substr (a,b-a+1)<<endl;
return 0;
}
第2个回答  2013-07-10
a、b都是下标那么for(i = 0; a <= b; i++, a++)getstr[i]=str[a];getstr[b+1] = '\0';就可以了
第3个回答  2013-07-10
include<iostream>
using namespace std;
void strncut(char str_target[],char str_source[],int start_position, int end_position)
{
int new_strlen=end_position-start_position+1;//get the len of new string
int i=start_position;
cout<<"\ntarget str is : ";
for(int j=0;j<new_strlen;j++)
{
str_target[j]=str_source[i-1];
i++;
cout<<str_target[j];
}//endfor
}//end function strncut
int main()
{
char a[10]="912345678";
char b[4];
strncut(b,a,2,5);
return 0;
}

C++如何截取字符串中从a位置到b位置
方法1:\/\/...为了说明情况,假如有b>a>0,字符串str[]长度大于bchar *p;p = &str[a];*(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于bchar dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,...

C++如何截取字符串中从a位置到b位置
char *p;p = &str[a];(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b char dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,p++) *p = str[i];\/\/截取到dest[N]p = '\\0';方法3:\/\/....

C++中截取字符串的方法有哪些
纯C++可以使用 substr string a = "01234567";string b = a.substr(2, 6);

c++字符数组两个特定字符之间的字符怎么截取
c++字符数组两个特定字符之间的字符截取过程为:采用循环遍历字符数组,先找到第一个字符的位置 从该位置的下一个位置开始,将字符写到新的子串中,直到遇到第二个字符或字符串结束符,结束循环 置子字符串结束符 输出新的子字符串 参考代码:include <stdio.h>void substring( char *s, char ch1, ...

c++怎么提取字符串的一部分
(1)find_last_of的npos为从末尾开始寻找的位置。(2)下文中用到的strsub(npos,size)函数,其中npos为开始位置,size为截取大小 例1:直接查找字符串中是否具有某个字符串(返回"2")std::string strPath = "E:\\\\数据\\\\2018\\\\2000坐标系\\\\a.shp"int a = 0;if (strPath.find("2018") ...

C++字符串截取
可以用substr这个方法,有两个输入参数分别为起始地址和截取的长度。s2 = s1.substr(0,3);s3 = s1.substr(4,3);如果写的更通用一点,就是先查找“+”的位置,然后在分隔。size_t iPos = s.find("+");s2 = s1.substr(0, iPos);s3 = s1.substr(iPos+1, s1.length()-iPos-1);

C++ 字符串的截取
char a[100],b[100][100];\/\/a是源 char c;int i,j=0,k=0;for(i=0;i<=99;i++){ b[j][k]=a[i];if(a[i]=='|')j++,k=0;else k++;} 初步这样,最后得到的都在b数组里面了。不知道可不可以。

C++截取字符串中的数据
include <iostream> include <string> using namespace std;void display(const int *a){ for(int i=0;a[i];i++)cout<<a[i]<<" ";cout<<endl;} void cat(const string &str,int *temp,int &a){ int count=0,k=0;unsigned int i=0;char strtemp[255]={0};while(i<str.size(...

如何用c\/c++把一个字符串把里边的数字提取出来
给定一个数字字符串,把这个串里边的连续数字提取出来放到另外一个整型数组中一个单元中:include<iostream> include<string> using namespace std;void tiqu(char*a,int*b){ int j=0;bool key=false;for(int i=0;i<strlen(a);i++){ if(a[i]>='0'&&a[i]<='9'){ if(key)b[j] ...

C++ 根据特殊字符串截取字符串
用CString类的find成员函数找到\/n的位置,然后再用CString类的Left等成员函数截取就可以了

相似回答