请问一下每一步是什么意思

请问一下每一步是什么意思求指教指教

img


请问一下每一步是什么意思求指教指教

这个程序主要是找出字符数组s1与字符数组s2不同的字符。

具体注释如下:


#include <stdio.h> // printf函数的头文件

int main(void){
    
    char s1[256];  // 定义存储第一个字符串的字符数组 
    char s2[256];  // 定义存储第二个字符串的字符数组 
    
    gets(s1);  // 从输入获取第一个字符串 
//    printf("s1=%s\n",s1);
    gets(s2);  // 从输入获取第二个字符串 
//    printf("s2=%s\n",s2);
    
    
    int i,j,k;
    for(i=0;s1[i]!='\0';i++){  // 遍历字符数组s1每一个字符 
        
        for(j=0;s2[j]!='\0';j++){  // 遍历字符数组s2每一个字符 
            // 如果字符数组s1当前位置的字符值 等于 字符数组s2当前位置的 字符值 ,则将s1此位置的字符改为 '+' 字符 
            // 以寻找出 s1与s2不同的字符 
            if(s1[i]==s2[j]){ 
                
                s1[i]='+';
            //    printf("s1[%d]=%c,s2[%d]=%c\n",i,s1[i],j,s2[j]);
            }
        }
    }
    
    
    for(k=0;s1[k]!='\0';k++){  // 遍历字符数组s1 ,打印其不为'+'字符的字符,即打印与字符数组s2不同的字符 
    //    printf("\ns1[%d]=%c,%d\n",k,s1[k],s1[k]);
        if(s1[k]!='+'){
            printf("%c",s1[k]);
        }
    
    }
//printf("s1[%d]=%c,%d\n",k,s1[k],s1[k]);
    
 // 这个是打印字符数组s1 第k+1个字符位置的值,其为字符数组空字符后面一个字符,此处应该无须打印    
    printf("%c",s1[k+1]); 
    //printf("s1[%d]=%c,%d\n",k+1,s1[k+1],s1[k+1]);
    
    return 0;
} 

img