注册 登录
编程论坛 C++教室

大神帮我解释一下这段代码,顺带祝大家新年快乐!

jacklb 发布于 2017-01-26 19:17, 1223 次点击
我刚学C++,有一段字符串左移的代码看不懂,麻烦有大神帮我解释一下吗?尤其是中间循环这段,到底是怎么个处理机制啊。
代码如下:

#include "stdafx.h"
#include "stdio.h"
#include "string.h"


int main()
{
    char str[100], c;        
    int n;                    

    gets_s(str);            
    scanf("%d", &n);        

    int len = strlen(str);   
    int i, j;

            for (i = 0;i<n;i++) {
            c = str[0];
            for (j = 0;j<len - 1;j++)

            {
                str[j] = str[j + 1];
            }
            str[j] = c;
        }

    printf("%s\n", str);

    return 0;
}
1 回复
#2
yangfrancis2017-01-30 21:46
外循环每执行一次,是要把字符串循环左移一位,外循环执行n次就代表循环往左移动n位。每次循环时,先把第一个字符值存到c中,再以内循环将第2个字符赋给第1个字符,第3个字符赋给第2个字符……内循环结束后再把保存到c中的首字符赋给尾字符。
1