我在這裏試圖完成的是取一個cString並用另一個地方代替某個字符,這個地方是通過使用strchr()函數找到的。C指針算術
我無法弄清楚是如何替換字符我所有的嘗試(下面註釋掉)都會產生未經編輯的字符串或崩潰程序。我相信我正在朝着正確的方向去取代字符(取char * c的起始地址,並添加n(我想替換的字符前面的字節數),然後寫入該新地址),但我似乎無法讓它正常工作。
任何幫助表示讚賞。
int main()
{
char *c, *sch;
int n;
c = "this is a test\n";
sch = strchr(c, 'a');
if(sch != NULL)
{
n = sch-c+1;
printf("%d\n", (int)sch);
printf("%d\n\n", (int)c);
printf("'a' found at: %d", n);
}
/////////////////////
//sch = &c;
//*(sch + n) = 'z';
/////////////////////
//*(c + n) = 'z';
/////////////////////
//c[n] = 'z';
/////////////////////
printf("\n\n%s", c);
getchar();
return 0;
}
'sch'指向只讀的字符串文字。 – 2011-06-15 22:03:18
@Bertrand:對,我會解決答案。被分配給char *的事實讓我分心。 – 2011-06-15 22:04:39