本文目錄一覽:
C語言反轉字符串怎麼反轉?
讀取字符串,瀏覽字符串每一個字符,
如果是空格就輸出空格,
否則就保存當前位置,從當前位置移動到下一個空格或字符尾前,
從當前位置開始反向輸出,直達回到保存的位置
最後輸出回車,結束
//以下是C語言版的,需要的話,可以看看
#includestdio.h
#includestdlib.h
#includestring.h
#define String_MaxSize 10000 //讀入字符串的最大長度
int main()
{
char stringPtr[String_MaxSize]; //保存讀入的字符串
//循環讀取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr); //字符串的長度
int i;
//循環讀取整段字符串
for(i = 0; i stringPtr_length; i++)
{
//如果字符為空格
if(stringPtr[i] == ‘ ‘)
{
//直接輸出空格
printf(” “);
}
//如果字符非空格
else
{
int tempPos = i; //保存當前i的位置
int j; //代替i進行反向移動
//讀取到下一個空格或字符串尾的前一個位置
while(i stringPtr_length stringPtr[i] != ‘ ‘)
{
i++;
}
i–;
//輸出單詞
for(j = i; j = tempPos; j–)
{
putchar(stringPtr[j]);
}
}
}
//輸出回車
printf(“\n”);
}
//輸出回車
printf(“\n”);
return 0;
}
C語言編程題:顛倒字符串
#includestdio.h
#define N 20
void invert(char *s) { char *p,*q,c;
p=q=s; while ( *q ) q++; q–; //p指向首字符,q指向尾字符
while ( pq ) { c=*p; *p=*q; *q=c; p++; q–; }
}
void main() { char s[N][256]; int i,n;
scanf(“%d”,n); for ( i=0;in;i++ ) gets(s[i]);
for ( i=0;in;i++ ) invert(s[i]);
for ( i=0;in;i++ ) printf(“%s\n”,s[i]);
}
C語言中如何實現字符串的反轉?
#includestdio.h
#includestring.h
string_change(char * p)
{
int i,len;
char temp;
len = strlen(p);
//printf(“%d \n”, len);
//test printf(“%d\n”,len);
for(i=0; i(len/2); i++)
{
temp = p[i];
p[i] = p[len-1-i];
p[len-1-i] = temp;
}
}
int main(void)
{
char a[20] = “1234567890”;
printf(“%s\n”,a);
string_change(a);
printf(“%s\n”,a);
return 0;
}
兩個明顯的誤解:
char* a=”12***”; 這樣定義是錯誤的。這樣 a指向字符串常量的指針。而字符串常量是不能改變的。所以停止運行。
c中數組是從0開始編號的。所以字符串最後一個字符是a[len-1];
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/246645.html