我想用一个函数和一些指针来反转一个字符串,但我无法获得更新原始字符串的函数。带指针的反向字符串?
#include <stdio.h>
#include <string.h>
void rev(char* string)
{
char str2[strlen(string)];
char *p1;
char *p2;
p1 = string + strlen(string)-1;
p2 = str2;
while(p1 >= string)
*p2++ = *p1--;
*p2 = '\0';
p2 = p2 - strlen(string);
string = p2; // This codesn't seem to update s1 or s2
}
int main(void)
{
char s1[100] = "What does the fox say?";
char s2[100] = "Titanic sinks";
rev(s1);
rev(s2);
printf("\n\n%s\n", s1);
printf("%s\n", s2);
return 0;
}
该功能的工作原理,但我不能得到主字符串中的字符串与反向字符串更新。 Imo string = p2
应该将字符串更新为其反向值。它确实,但只在函数内部,而不在主函数中...
我不t认为,这工作:'char str2 [strlen(str荷兰国际集团)]'。 – Batuu
@Batuu C99的可变长度数组 – Deck
而不是创建str2,只是使用原始字符串,并使用指针交换字符。 – imran