C語言回顧-字符串指針

1.字符串指針數組

char *變量名="字符串內容";oop

char ch='b';spa

char *p1=&ch;指針

char *str="C Language";//表示s指向字符串的首地址code

str="ssssssss";//字符串存在常量區,能夠修改s指向的內容blog

*(str+2)='X';//能夠*(str+2)這樣訪問,可是不能修改。常量區保存的內容都是隻讀的排序

常見誤區:內存

char *str2=NULL;字符串

printf("%s",str2);//這樣寫是錯誤的,str2沒有分配內存空間去存儲變量string

解決辦法:

char *str2=NULL;

str2=malloc(100);

printf("%s",str2);

或者:

char ch3[100];

char *str2=ch3;

printf("%s",str2);

2.二維字符數組

char ch2[3][10]={"abc","def","kkk"};

3.char類型的指針數組和字符數組的區別

char *name[3]={"abc","def","kkk"};//一維指針數組,每一個元素存儲字符串首地址

#include <stdio.h>

int main(int argc, const char * argv[]) { char *name[3]={"abc","def","kkk"}; for(int i=0;i<3;i++){ printf("%s\n",*(name+i));//name[i] } return 0; }

1)字符串指針char *ss="abc";指向能夠改變ss="ssssss";

2)字符數組char s1[]="abc"; s1是一個常量,不能被賦值,s1="Helll";是錯誤的,

4.字符串排序

//
// main.c // 字符串排序 //
// Created by fanyafang on 15/11/4. // Copyright © 2015年 itcast. All rights reserved. //  #include <stdio.h> #include <string.h>

void sortString(char *arr[],int length){ char *temp=""; //選擇排序
    for(int i=0;i<length;i++){ for(int j=i+1;j<length;j++){ if(strcmp(arr[i], arr[j])>0){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } } int main(int argc, const char * argv[]) { char *arr[]={"China","America","Flash","Toop"}; for(int i=0;i<4;i++){ printf("%s\n",arr[i]); } printf("\n"); sortString(arr,4); for(int i=0;i<4;i++){ printf("%s\n",arr[i]); } return 0; }
相關文章
相關標籤/搜索