① c語言遍歷字元串數組
針對每個字元遍歷就可以,如果大字元串長度n、固定長度為m,那麼循環為:
for (i=0;i<n-m;i++)
{
....
}
② 用c語言編寫,一維數組假設10個字元遍歷查詢位置,查找數組中是否有等於某個字元,若有找出位置,沒有
#include <stdio.h>
void main(){
char charFind[10] = {'a','b','c','d','e','f','g','h','i','k'},inputChar;
int i,bFlag=0,address;
printf("請輸入一個字慶嘩纖符:"譽仿);
scanf("%c",&inputChar);
for(i=0;i<10;i++){
if(charFind[i]==inputChar){
bFlag = 1;
address = i;
}else{
bFlag=0;
}
}
if(bFlag==0){
printf("蘆陸查無此數!");
}else{
printf("這個字元在數組中的位置是:%d",address)
}
}
③ c語言如何輸入任意長度的字元串數組
方法:
1)逐個元素進行賦初值。例如:
char
a[12]={'g','o','o','d','
','m','o','r','n','i','n','g'};
採用這種方式對字元數組初始化,可以不包括結束標志,這是合法的。但在對數組整體輸出時系統無法判斷字元串是否結束,輸出結果會存在問題。因此通常人為的加上『\0』。上例做如下改動更合理:
char
a[13]={'g','o','o','d','
','m','o','r','n','i','n','g','\0'};
2)用字元串常量來初始化字元數組:
char
a[]="good
morning";或
char
a[]={"good
morning"};
採用這種方式初始化字元數組,可以不指定數組長度,但數組的實際長度比字元串常量的長度多1,因為系統會在最後添加字元串結束標志『\0』;若指定了數組的長度,如果字元串常量的長度大於數組長度會出錯,如果小於數組長度,系統會將未賦值的元素全部充成『\0』。
④ C語言遍歷結構體數組
//Win32Project1.cpp:定義應用程序的入口點。
//
#include"stdafx.h"
#include"Win32Project1.h"
#defineMAX_LOADSTRING100
//全局變數:
HINSTANCEhInst; //當前實例
TCHARszTitle[MAX_LOADSTRING]; //標題欄文本
TCHARszWindowClass[MAX_LOADSTRING]; //主窗口類名
//此代碼模塊中包含的函數的前向聲明:
ATOM MyRegisterClass(HINSTANCEhInstance);
BOOL InitInstance(HINSTANCE,int);
LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);
intAPIENTRY_tWinMain(_In_HINSTANCEhInstance,
_In_opt_HINSTANCEhPrevInstance,
_In_LPTSTRlpCmdLine,
_In_intnCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
//TODO:在此放置代碼。
MSGmsg;
HACCELhAccelTable;
//初始化全局字元串
LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);
LoadString(hInstance,IDC_WIN32PROJECT1,szWindowClass,MAX_LOADSTRING);
MyRegisterClass(hInstance);
//執行應用程序初始化:
if(!InitInstance(hInstance,nCmdShow))
{
returnFALSE;
}
hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_WIN32PROJECT1));
//主消息循環:
while(GetMessage(&msg,NULL,0,0))
{
if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return(int)msg.wParam;
}//
//函數:MyRegisterClass()
//
//目的:注冊窗口類。
//
ATOMMyRegisterClass(HINSTANCEhInstance)
{
WNDCLASSEXwcex;
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style =CS_HREDRAW|CS_VREDRAW;
wcex.lpfnWndProc =WndProc;
wcex.cbClsExtra =0;
wcex.cbWndExtra =0;
wcex.hInstance =hInstance;
wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_WIN32PROJECT1));
wcex.hCursor =LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName =MAKEINTRESOURCE(IDC_WIN32PROJECT1);
wcex.lpszClassName =szWindowClass;
wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));
returnRegisterClassEx(&wcex);
}
//
//函數:InitInstance(HINSTANCE,int)
//
//目的:保存實例句柄並創建主窗口
//
//注釋:
//
//在此函數中,我們在全局變數中保存實例句柄並
//創建和顯示主程序窗口。
//
BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)
{
HWNDhWnd;
hInst=hInstance;//將實例句柄存儲在全局變數中
hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
if(!hWnd)
{
returnFALSE;
}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
returnTRUE;
}
//
//函數:WndProc(HWND,UINT,WPARAM,LPARAM)
//
//目的:處理主窗口的消息。
//
//WM_COMMAND -處理應用程序菜單
//WM_PAINT -繪制主窗口
//WM_DESTROY -發送退出消息並返回
//
//
LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
intwmId,wmEvent;
PAINTSTRUCTps;
HDChdc;
switch(message)
{
caseWM_COMMAND:
wmId=LOWORD(wParam);
wmEvent=HIWORD(wParam);
//分析菜單選擇:
switch(wmId)
{
caseIDM_ABOUT:
DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);
break;
caseIDM_EXIT:
DestroyWindow(hWnd);
break;
default:
returnDefWindowProc(hWnd,message,wParam,lParam);
}
break;
caseWM_PAINT:
hdc=BeginPaint(hWnd,&ps);
//TODO:在此添加任意繪圖代碼...
EndPaint(hWnd,&ps);
break;
caseWM_DESTROY:
PostQuitMessage(0);
break;
default:
returnDefWindowProc(hWnd,message,wParam,lParam);
}
return0;
}
//「關於」框的消息處理程序。
INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)
{
UNREFERENCED_PARAMETER(lParam);
switch(message)
{
caseWM_INITDIALOG:
return(INT_PTR)TRUE;
caseWM_COMMAND:
if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)
{
EndDialog(hDlg,LOWORD(wParam));
return(INT_PTR)TRUE;
}
break;
}
return(INT_PTR)FALSE;
}
⑤ c語言怎麼表示字元數組剩下的字元
在C語言中,字元數組的結尾通常以空字元'\0'表示。如果想要表檔正頃示字元數組中剩下的字元,可以通過循環遍歷數組來找行陸到空字元的位置,從而確定剩餘字元的長度,然後可清陪以使用字元串處理函數來處理剩餘字元。
以下是一個示例代碼,用於遍歷字元數組並輸出剩餘字元
⑥ C語言字元數組遍歷問題,請問下面輸出語句為何會出現空指針
printf("%s",str[i]);
空指針出現在這里,%s的時候,將一個char當做指針地址,當然會出畝擾陪現問迅蠢題。
printf("%c",str[i]);
就可以李搭了。
⑦ c語言怎麼遍歷字元串
循環字元串數組就可以了。