这两个是函数,void表示这个函数无返回类型,也就是没有返回值。括号里面表示参数,传进去给这个函数使用,实现一些逻辑功能。reverse和cal_string_num是函数名,看这两个名字,好像这两个函数的功能是字符串反转和计算字符串数目。第二个函数感觉定义得有点不寻常,呵呵。
void reverse(char s[]){ int i,j,c; for(i = 0, j = strlen(s)-1; i < j; ++i,--j) { s[c] = s[i]; s[i] = s[j]; s[j] = s[c]; }}空格不是strlen的问题,是scanf的问题,scanf读取到空格就认为字符串结束了没有继续往下读取,可以自己写...
你的reverse定义为void,都没返回值,你怎么给s[]赋值,s[]=reverse();没有参数传递的啊(void reverse(char s[]) )还有就是你的那个s[]写法也有问题,你的主函数main()没有定义要有返回值的吧,怎么又有一个return a 问题多多
如果str或count是NULL,返回NULL。 `reverse(str)` 返回颠倒字符顺序的字符串str `insert(str,pos,len,newstr)` 返回字符串str,在位置pos起始的子串且len个字符长的子串由字符串newstr代替。 `substring_index(str,delim,count)` 从str中找到delim字符串按下标获取字符串 日期和时间函数 条件判断函数 系统信息函数...
如果只是要求输出,不需要再内存里面进行处理 for ( i = strlen(s)-1; i >= j; --i ){ putc( s[i] );} 直接从后面向前反方向单个字符输出一下就可以。如果要实现strrev,那最好写成一个单独的函数,而且是在内存中进行处理,那就要实现“交换”的功能。核心的部分是这个样子:for( i = ...
1...使用StringBuilder类进行字符串反转要实现字符串的反转,我们可以将字符串对象封装到StringBuilder中,再调用StringBuilder的reverse方法进行反转。...最后,通过toString方法将反转后的StringBuilder对象转换回字符串。...最后,使用toString方法将反转后的StringBuilder对象转换回字符串,并将结果赋值给girl。最后一行代码将反转...
空格的原因是printf("the reverse line is:\n %s", rev);这句里面有一个空格(你的格式是换行后空格输出 所以有一个空格)至于烫的原因 是 for (i = 0; i <= len; ++i)rev[len - i] = ori[i - 1];是当i=0的时候引用了ori[-1]是位置的内存,所以出现的 改为 for (i = 1; ...
因为result是局部变量,在Reverse函数返回之后就自动销毁了 你返回的String*是result的地址,那么在函数返回以后,这个返回值指向的地址已经不再有效,所以当然不能得到正确的结构体内容啊
(reserve:保留 reverse:逆置) 📚 reserve 会改变容量 .reserve(size_t res_arg=0) 为string预留空间,不改变有效元素个数,当reserve的参数小于 string的底层空间总大小时,reserve不会改变容量大小。 1. 2. 3. s.reserve(1000); // 请求申请至少能存储1000个数据的容量 ...
字符串倒转过来,就是说字符串里面的单词还是保持原来的顺序,这里的每 个单词用空格分开。例如:Here is fishksy.com.cn 经过反转后变为: fishksy.com.cn is Here char* reverse_word(const char* str) { int len = strlen(str); char* restr = malloc(len+1); strcpy(restr, str); ...