查错,一个字符串逆序的程序
#include <stdio.h>
#include <string.h>
void reverse(char *str){
int len = strlen(str);
char *p = str + len - 1;
char tmp;
while(str < p){
tmp = *str;
*str = *p;//这一行总报错求原因,谢谢
*p = tmp;
}
}
void printString(char *str){
printf("%s", str);
}
int main(int argc, char *argv[])
{
char *string = "chenjinkai";
printString(string);
reverse(string);
printString(string);
return 0;
}
[解决办法]
while(str < p){
tmp = *str;
*str = *p;//这一行总报错求原因,谢谢
*p = tmp;
}
这里指针不移动怎么revers字符串?
应该加上p--;str++;
[解决办法]
char *string = "chenjinkai"; 这是常量字符串,不能修改:
改成: char string[] = "chenjinkai";
[解决办法]
main函数中
char *string = "chenjinkai";
改成
char string[] = "chenjinkai";
[解决办法]
char *string = "chenjinkai"; 这是常量字符串,不能修改:
改成: char string[] = "chenjinkai";
[解决办法]
char *string = "chenjinkai"; 这是常量字符串,不能修改:
改成: char string[] = "chenjinkai";
[解决办法]
#include <stdio.h>
#include <string.h>
void reverse(char *str){
int len = strlen(str);
char *p = str + len - 1;
char tmp;
while(str <= p){
tmp = *str;
*str = *p;
*p = tmp;
str++;
p--;
}
}
void printString(const char *str){
printf("%s\n", str);
}
int main(int argc, char *argv[])
{
char string[] = "chenjinkai";
printString(string);
reverse(string);
printString(string);
return 0;
}
拿分,走人