C++函数如何传递字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++函数如何传递字符串相关的知识,希望对你有一定的参考价值。
xingming1(char *a1)
a1="男人"
。就是上面的函数,传递过来一个字符串,这能实现吗?在main中能用他
它有两种形式,第一种是:String substring(int startIndex)
第二种是:String substring(int startIndex,int endIndex)
concat() 连接两个字符串
replace() 替换
它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
String replace(char original,char replacement)
例如:String s=”Hello”.replace(’l',’w');
第二种形式是用一个字符序列替换另一个字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)
trim() 去掉起始和结尾的空格
valueOf() 转换为字符串
eg: System.out.prinltln(String.valueOf(-129.12D)); //打印129.12
toLowerCase() 转换为小写
toUpperCase() 转换为大写
length() 取得字符串的长度
例:
char chars[]=’a',’b’.’c';
String s=new String(chars);
int len=s.length();
charAt() 截取一个字符
例:
char ch;
ch=”abc”.charAt(1);
返回值为’b’
getChars() 截取多个字符
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
sourceStart 指定了子串开始字符的下标
sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。
target 指定接收字符的数组
targetStart target中开始复制子串的下标值
例:
String s=”this is a demo of the getChars method.”;
char buf[]=new char[20];
s.getChars(10,14,buf,0);
getBytes()
替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()
例:
String s = “Hello!你好!”;
byte[] bytes = s.getBytes();
toCharArray()
例:
String s = “Hello!你好!”;
char[] ss = s.toCharArray();
equals()和equalsIgnoreCase() 比较两个字符串的内容
equals区分字母大小写;equalsIgnoreCase不区分大小写
regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。
boolean regionMatches(int startIndex,String str2,int
str2StartIndex,int numChars)
boolean regionMatches(boolean ignoreCase,int startIndex,String
str2,int str2StartIndex,int numChars)
startsWith()和endsWith()
startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束
equals()和==
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
例:String s1=”Hello”;
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false
compareTo()和compareToIgnoreCase() 按字典次序比较字符串的大小
eg: System.out.println("a".compareTo("b")); //打印-1
System.out.println("b".compareTo("a")); //打印1
System.out.println("a".compareTo("a")); //打印0
indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。
String[] spliter (String regex);参数regex把原来字符串分割成几个字符串;
eg: str="11:23:14";
result=str.spliter();
System.out.println(result); //打印“11”,“23”,“14”
StringBuffer构造函数(字符串缓存)
StringBuffer定义了三个构造函数:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
StringBuffer(CharSequence chars)
下面是StringBuffer相关的函数:
length()和capacity()
一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。
ensureCapacity() 设置缓冲区的大小
void ensureCapacity(int capacity)
setLength() 设置缓冲区的长度
void setLength(int len)
charAt()和setCharAt()
charAt()同String类相同;
char charAt(int where)
void setCharAt(int where,char ch)
在字符串的where的位置放置ch; 参考技术A 以字符串数组形式传递,指针方式 或 数组方式 都能实现参数传递。
如:
#include <stdio.h>
#include <string.h>
void fun1( char *pstr )
printf("%s\n",pstr );
void fun2( char arr[] )
printf("%s\n",arr );
int main()
char str[10];
strcpy( str , "hello" );
fun1( str );
fun2(str);
return 0;
参考技术B a1="男人";改为 strcpy(a1,"男人");应该是可以的(调用xingming1函数是,实参是字符数组名)。追问
要怎么写?我上面没定义数组
追答#include
#include
xingming1(char *a1)
strcpy(a1,"男人");
void main()
char str[20];
xingming1(str);
printf("%s\n", str);
一定要传递,这是传递吗?
以上是关于C++函数如何传递字符串的主要内容,如果未能解决你的问题,请参考以下文章