#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
void ParseAssign(char*str,char*pVar,int*pVal){
int ep;
for(int i=0;i<strlen(str);i++){
if(isspace(str[i])){
for(int j=i+1;j<strlen(str);j++){
*(str+j-1)=*(str+j);
}
}
if(str[i]=='='){
ep=i;
}
}
for(int i=0;i<ep;i++){
*(pVar+i)=*(str+i);
}
*(str+strlen(str)-1)='\0';//为什么segmentation fault?为什么这时候不能直接赋值?
*pVal=atoi(str+ep+1);
}
int main(){
char pVar[30];
int pVal[1];
//char str[30]="x=31;";//ParseAssign(str,pVar,pVal)为什么将下一行代码换成这样就不会报错了?
ParseAssign("x=31;",pVar,pVal);
puts(pVar);
for(int i=0;i<1;i++){
printf("%d",pVal[i]);
}
return 0;
}
char str[30]="x=31;"
此时str是常量,不能修改