C中的反向字符串功能

漂移117
 void reverse_string( char * string )
 {
     // Insert your code here
     int i;
     int length = strlen(string); 
     char* temp; // string is a pointer, so temp must be a pointer as well.
          for(i=0; i<= length/2 ; i++)
          { 
            temp = *(string +i); 
            *(string +i) = *(string + length-(1*i));
            *(string + length-(1*i))= temp; 
          }
 }

为什么在strlen函数中的那个字符串不需要前面的'*'?我也遇到temp = *(string + i)的错误,但是当我把char temp = ...时,它可以工作。我以为temp可以在for循环中工作而无需将类型放在前面,因为我已经在reverse_string函数中声明了它,但事实并非如此。

约翰

*ptr称为解引用指针;它等于指向的值ptr在C语言中,我们通过指向该字符串中第一个字符的指针来访问字符串。这就是为什么字符串以null终止的原因,因为您实际上只知道字符串在内存中的起始位置。您只是将指针传递到strlen*string而是传递了字符串中的第一个字符。

C还支持指针算术,您可以像通过int一样通过对其进行加减运算来偏移指针。结果将是指针偏移量乘以它指向的类型的大小再乘以数字偏移量。string + i给您一个指向第i个字符的指针,该指针位于所指向的字符之后string因此*(string + i)是字符,而不是指针,因为您要取消引用char的指针。因此,您不想temp成为指针,因此请删除其声明中的*。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中的字符串反向

来自分类Dev

字符串中的反向单词C ++

来自分类Dev

C 反向字符串

来自分类Dev

在C ++中对字符串的字符进行反向迭代

来自分类Dev

在C#中的字符串中反向元音

来自分类Dev

使用反向for循环替换C中字符串的结尾

来自分类Dev

在C#.net中通过2对反向字符串

来自分类Dev

反向标记字符串中的子字符串

来自分类Dev

javascript中字符串的反向

来自分类Dev

反向字符串函数C ++

来自分类Dev

Linq反向字符串C#

来自分类Dev

反向C样式字符串

来自分类Dev

Linq反向字符串C#

来自分类Dev

反向字符串函数C ++

来自分类Dev

反向使用C ++中的字符串而不使用反向

来自分类Dev

反向使用C ++中的字符串而不使用反向

来自分类Dev

C:反向字符串功能不影响指针

来自分类Dev

反向字符串功能出现分段错误

来自分类Dev

没有数组功能的反向字符串

来自分类Dev

尝试在javascript中反向字符串时,在反向字符串的开头获取NaN

来自分类Dev

反向字符串程序中的空字符是什么?

来自分类Dev

反向字符串而不影响php中的特殊字符

来自分类Dev

C-Valgrind在我的反向字符串函数中检测到错误

来自分类Dev

如何在C ++中通过内置的reverse()函数存储反向字符串

来自分类Dev

C语言中的文件处理从输出中打印出反向字符串

来自分类Dev

为什么反向函数会更改C中的原始字符串值?

来自分类Dev

反向字符串顺序

来自分类Dev

Java反向字符串

来自分类Dev

Java反向字符串